Android_Button

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

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

使用findViewById方法獲取一個View對象,參數爲控件的id,同時還需要把View對象強制轉換成相應的類型


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

android:inputType

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

android:inputType="phone"爲設置輸入格式爲撥號鍵盤


Button

可以設置文本內容的一個按鈕

ImageButton

不可以設置文本內容 

src:自適應;  background:填充


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

ImageButton是用於在按鈕上顯示圖片的。所以是沒有android:text這個屬性的。並且如果在佈局文件中寫上android:text="我是一個按鈕",在android 4.4環境中是不會看到任何效果的


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

2、所有的控件都有一個onclick事件

3、通過點擊事件的監聽可以實現點擊按鈕後發生的動作


監聽事件實現的幾種方式:

1、匿名內部類實現

public class MainActivity extends AppCompatActivity {

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

        //監聽事件匿名內部類實現
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //在當前方法中監聽點擊Button的事件
                Toast.makeText(MainActivity.this, "You clicked first button", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

同時給一個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、初始化當前所需要的控件
         *    findViewById--- 返回一個View對象
         * 2、設置Button的監聽器,通過監聽器實現點擊Button的操作
         */
        bt1=(Button) findViewById(R.id.button);
        bt3=(ImageButton)findViewById(R.id.button_i);
        //監聽事件匿名內部類實現
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //在當前方法中監聽點擊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();
            }
        });

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



    }

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

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


2、獨立類的實現

新建一個類:

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

實例化新建的類實現點擊事件:

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


3、實現接口的方式來實現

直接實現一個OnClickListener接口

public class MainActivity extends AppCompatActivity 

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

實現點擊事件:
//        //接口方式實現監聽事件:
//        //傳入this,即實現當前實現的接口重寫的Onclick方法提供的事件
//        bt3.setOnClickListener(this);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章