在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);
原文:http://yizhimayi.blog.51cto.com/11329885/1764473