安卓四种点击事件写法
1、内部类实现OnClickListener接口:传统写法,适用于单个点击事件
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clickways);
btn1=(Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new BtnClick1());//内部类实现
}
private class BtnClick1 implements View.OnClickListener{//
public void onClick(View v){
Toast.makeText(MainActivity.this,"按钮1被点击了",Toast.LENGTH_SHORT).show();
}
}
}
2、匿名内部类实现OnClickListener接口:减少代码量
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clickways);
btn2=(Button)findViewById(R.id.btn2);
btn1.setOnClickListener(new View.OnClickListener(){//
public void onClick(View v){
Toast.makeText(MainActivity.this,"按钮1被点击了",Toast.LENGTH_SHORT).show();
});//匿名内部类实现
}
3、当前Activity实现OnClickListener接口:用于不同接口的点击事件,推荐使用
在MainActivity后面引入接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{}
设置点击监听事件
btn3.setOnClickListener(this)
添加点击事件具体实现方法
public void onClick(View v){
switch(v.getId()){
case R.id.btn3:
Toast.makeText(MainActivity.this,"按钮1被点击了",Toast.LENGTH_SHORT).show();
break;
}
}
4、xml添加onclick属性:点击事件较少或者多个点击事件效果相同
在布局文件xml中添加oncick事件
android:onClick="methodname"
在activity.java中写具体的methodname的方法
public void methodname(View v){
//具体实现方法
}