在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);