溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android_Button

發(fā)布時(shí)間:2020-06-24 23:31:49 來源:網(wǎng)絡(luò) 閱讀:271 作者:呆頭陳 欄目:移動(dòng)開發(fā)

在Activity中需要獲取一個(gè)id是bookName的TextView控件對象,

(TextView)this.findViewById(R.id.bookName)

使用findViewById方法獲取一個(gè)View對象,參數(shù)為控件的id,同時(shí)還需要把View對象強(qiáng)制轉(zhuǎn)換成相應(yīng)的類型


EditText的眾多屬性中可以限制輸入格式的屬性:

android:inputType

設(shè)置EditText的android:inputType屬性可以限制文本輸入類型比如android:inputType="textPassword"為設(shè)置輸入格式為密碼格,

android:inputType="phone"為設(shè)置輸入格式為撥號鍵盤


Button

可以設(shè)置文本內(nèi)容的一個(gè)按鈕

ImageButton

不可以設(shè)置文本內(nèi)容 

src:自適應(yīng);  background:填充


ImageButton的android:text屬性不可以直接賦值

ImageButton是用于在按鈕上顯示圖片的。所以是沒有android:text這個(gè)屬性的。并且如果在布局文件中寫上android:text="我是一個(gè)按鈕",在android 4.4環(huán)境中是不會(huì)看到任何效果的


1、Button和ImageButton都擁有一個(gè) .setOnClickListener(OnClickListener)方法添加點(diǎn)擊事件。

2、所有的控件都有一個(gè)onclick事件

3、通過點(diǎn)擊事件的監(jiān)聽可以實(shí)現(xiàn)點(diǎn)擊按鈕后發(fā)生的動(dòng)作


監(jiān)聽事件實(shí)現(xiàn)的幾種方式:

1、匿名內(nèi)部類實(shí)現(xiàn)

public class MainActivity extends AppCompatActivity {

    private Button loginButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /***
         * 1、初始化當(dāng)前所需要的控件
         *    findViewById--- 返回一個(gè)View對象
         * 2、設(shè)置Button的監(jiān)聽器,通過監(jiān)聽器實(shí)現(xiàn)點(diǎn)擊Button的操作
         */
        loginButton=(Button) findViewById(R.id.button);

        //監(jiān)聽事件匿名內(nèi)部類實(shí)現(xiàn)
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //在當(dāng)前方法中監(jiān)聽點(diǎn)擊Button的事件
                Toast.makeText(MainActivity.this, "You clicked first button", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

同時(shí)給一個(gè)Button和ImageButton添加Toast事件:

public class MainActivity extends AppCompatActivity{

    private Button bt1;
    private ImageButton bt3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /***
         * 1、初始化當(dāng)前所需要的控件
         *    findViewById--- 返回一個(gè)View對象
         * 2、設(shè)置Button的監(jiān)聽器,通過監(jiān)聽器實(shí)現(xiàn)點(diǎn)擊Button的操作
         */
        bt1=(Button) findViewById(R.id.button);
        bt3=(ImageButton)findViewById(R.id.button_i);
        //監(jiān)聽事件匿名內(nèi)部類實(shí)現(xiàn)
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //在當(dāng)前方法中監(jiān)聽點(diǎn)擊Button的事件
                Toast.makeText(MainActivity.this, "You clicked first button", Toast.LENGTH_SHORT).show();
            }
        });

        bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "You clicked Image button", Toast.LENGTH_SHORT).show();
            }
        });

        /***
         * 外部類實(shí)現(xiàn)
         */
//        bt1.setOnClickListener(new MyOnClickListener(){
//            public void onClick(View view){
//                super.onClick(view);
//                Toast.makeText(MainActivity.this,"點(diǎn)擊了普通按鈕",Toast.LENGTH_LONG).show();
//            }
//        });



    }

//    @Override
//    public void onClick(View view) {
//        Log.i("tag","第三種方式");
//    }
}

////實(shí)現(xiàn)一個(gè)點(diǎn)擊事件的接口
//class MyOnClickListener implements View.OnClickListener{
//
//    @Override
//    public void onClick(View view) {
//        Log.i("tag","父類的onClick事件");
//    }
//}


2、獨(dú)立類的實(shí)現(xiàn)

新建一個(gè)類:

////實(shí)現(xiàn)一個(gè)點(diǎn)擊事件的接口
//class MyOnClickListener implements View.OnClickListener{
//
//    @Override
//    public void onClick(View view) {
//        Log.i("tag","父類的onClick事件");
//    }
//}

實(shí)例化新建的類實(shí)現(xiàn)點(diǎn)擊事件:

        /***
        * 外部類實(shí)現(xiàn)
        */
//        bt1.setOnClickListener(new MyOnClickListener(){
//            public void onClick(View view){
//                super.onClick(view);
//                Toast.makeText(MainActivity.this,"點(diǎn)擊了普通按鈕",Toast.LENGTH_LONG).show();
//            }
//        });


3、實(shí)現(xiàn)接口的方式來實(shí)現(xiàn)

直接實(shí)現(xiàn)一個(gè)OnClickListener接口

public class MainActivity extends AppCompatActivity 

重寫方法:
@Override
public void onClick(View view) {
    Log.i("tag","第三種方式");
}

實(shí)現(xiàn)點(diǎn)擊事件:
//        //接口方式實(shí)現(xiàn)監(jiān)聽事件:
//        //傳入this,即實(shí)現(xiàn)當(dāng)前實(shí)現(xiàn)的接口重寫的Onclick方法提供的事件
//        bt3.setOnClickListener(this);


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI