安卓监听器实现
当页面只有一个按钮
按钮注册监听器时直接实现监听接口,即匿名内部类的方式实现。
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//具体实现
f=new Fragment3();
ft.replace(R.id.fragment,f);
ft.commit();
}
});
当页面有多个按钮
直接在Activity主类中实现View.OnClickListener接口,重写onClick方法,提供所有按钮监听事件入口。
public class MainActivity extends Activity implements View.OnClickListener {
private Button button1;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
//在onCreate里注册监听器
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
//重写onClick方法
public void onClick(View view) {
switch (view.getId()) {
case R.id.button1:
onClickButton1(view);
break;
case R.id.button2:
onClickButton2(view);
break;
default:
break;
}
}
private void onClickButton1(View view) {
//处理逻辑
}
private void onClickButton2(View view) {
//处理逻辑
}
}
通常页面会有多可按钮,可以在OnClick方法中通过View.getId()获取到发生点击事件的按钮Id,再进行相应的处理;*建议不要直接在OnClick方法中直接处理,因为多个按钮的处理逻辑写在同一个方法中,方法体较长,可读性降低。