在Android中,为一个按钮增加监听的方式有三种
1.匿名内部类
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局文件 setContentView(R.layout.activity_main); //获得布局中的按钮 btn = (Button) findViewById(R.id.btn); //为按钮增加匿名内部类监听 btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //打印提示信息 Toast.makeText(MainActivity.this, "匿名内部类实现监听", Toast.LENGTH_SHORT).show(); } }); }
2.内部类
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局文件 setContentView(R.layout.activity_main); //获得布局中的按钮 btn = (Button) findViewById(R.id.btn); //内部类实现点击监听 btn.setOnClickListener(new MyClickListener()); } //定义一个内部类 class MyClickListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "内部类实现监听", Toast.LENGTH_SHORT).show(); } }
3.实现接口
定义的Activity实现OnClickListener接口,并重新onClick()方法
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局文件 setContentView(R.layout.activity_main); //获得布局中的按钮 btn = (Button) findViewById(R.id.btn); //增加监听,传递this对象,this代表的是被点击的控件 btn.setOnClickListener(this); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()) { case R.id.btn: Toast.makeText(MainActivity.this, "实现接口实现监听", Toast.LENGTH_SHORT).show(); break; } }
时间: 2024-10-21 09:25:49