事件监听实现步骤:
①创建事件源
②创建事件监听器(listener对象),并实现事件处理③注册监听器,比如:button.setOnclickListener(listener)
目录
用匿名内部类实现
//退出
Button btn1 = (Button)findViewById(R.id.btn_exit);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
//测试
Button btn2 = (Button)findViewById(R.id.btn_test);
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
TextView tv = (TextView) findViewById(R.id.msg);
tv.setText("Hello");
}
});
用普通内部类实现
完整代码
public class MainActivity extends AppCompatActivity {
class BtnClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_test:
TextView tv = (TextView) findViewById(R.id.msg);
tv.setText("Hello");
break;
case R.id.btn_exit:
finish();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button)findViewById(R.id.btn_exit);
Button btn2 = (Button)findViewById(R.id.btn_test);
BtnClickListener listener = new BtnClickListener();
btn1.setOnClickListener(listener);
btn2.setOnClickListener(listener);
}
}
编程过程中遇到的问题
遇见红色波浪线状的报错:鼠标放至波浪线上面,键盘按“Alt+Enter”
选择“Implement methods”,自动搭好框架