我们在用到Button的时候,基本是都会为其设置点击事件,用来处理某些特定的操作,那么我们该怎么写Button的点击事件呢?

Button中的几种点击

一个Button对应一个监听

 Button button1 = (Button) findViewById(R.id.button1);        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {            }        });

如果我们还有更多的Button,那么我们继续这样写就完了。
当然这种方法适合页面中按钮少的时候这样写,如果你页面里有十几个按钮,这样写看得人头都大了

所有button对应一个监听,我们重写OnClickListener监听。

public class TestActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test);        initViews();    }    private void initViews() {        Button button1 = (Button) findViewById(R.id.button1);        Button button2 = (Button) findViewById(R.id.button2);        button1.setOnClickListener(myListener);        button2.setOnClickListener(myListener);    }    View.OnClickListener myListener = new View.OnClickListener() {        @Override        public void onClick(View view) {            switch (view.getId()){                case R.id.button1:                    Toast.makeText(TestActivity.this, "点击按钮1", Toast.LENGTH_SHORT).show();                    break;                case R.id.button2:                    Toast.makeText(TestActivity.this, "点击按钮2", Toast.LENGTH_SHORT).show();                    break;                default:                    break;            }        }    };}

所有button对应一个监听,实现OnClickListener接口。

public class TestActivity extends Activity implements View.OnClickListener{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test);        initViews();    }    private void initViews() {        Button button1 = (Button) findViewById(R.id.button1);        Button button2 = (Button) findViewById(R.id.button2);        button1.setOnClickListener(this);        button2.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.button1:                Toast.makeText(TestActivity.this, "点击按钮1", Toast.LENGTH_SHORT).show();                break;            case R.id.button2:                Toast.makeText(TestActivity.this, "点击按钮2", Toast.LENGTH_SHORT).show();                break;            default:                break;        }    }}
上面两种方法适合按钮比较多的时候用,逻辑看起来也更加舒服,是个人比较常用的方法。

在Button中的XML代码中添加android:onClick 属性实现

XML代码为:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">   <Button       android:id="@+id/button1"       android:layout_width="match_parent"       android:text="button1"       android:onClick="myClick"       android:layout_height="40dp" />   <Button       android:id="@+id/button2"       android:layout_width="match_parent"       android:text="button2"       android:onClick="myClick"       android:layout_height="40dp" />LinearLayout>
java中代码为:
public class TestActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test);    }    /**     * 在XML中绑定了监听之后,在java代码中,不用去findViewById,也不用setOnClickListener,直接     * 实现我们xml中定义的方法即可,通过ID去区分点的是哪一项。     * 当然这里的方法必须要是public 声明的,否则会报错。     * */    public void myClick(View view){        switch (view.getId()){            case R.id.button1:                Toast.makeText(TestActivity.this, "点击按钮1", Toast.LENGTH_SHORT).show();                break;            case R.id.button2:                Toast.makeText(TestActivity.this, "点击按钮2", Toast.LENGTH_SHORT).show();                break;            default:                break;        }    }}

这种方法可以使你的代码很清晰,减少一些代码量,但是不够灵活。

更多相关文章

  1. android Popwindow中spinner点击崩溃挂掉的解决方法
  2. android提示:应用程序xx(进程:xxx.xxx.xxx)意外停止,请重试
  3. Android(安卓): gen already exists but is not a source folder
  4. android简易倒计时器
  5. Android(安卓)开发环境
  6. android监听返回按钮事件
  7. Kotlin的配置和使用
  8. SwipeRecyclerview使用中一些常见错误处理方法【持续更新中】
  9. android开发者选项

随机推荐

  1. PHP 括号配对判断及修正
  2. 一个好用的PHP验证码类
  3. 用于上传多个文件的PHP代码
  4. 使用AJAX值的Fileupload不会以其他字段的
  5. 在PHP中从JSON获取数据
  6. 强制动态加载的类来扩展或实现接口
  7. PHP加密解密明文相同每次密文不一样非对
  8. 仅获取单元素php数组中的值的最佳方法。
  9. 将主DB复制到不同的从站
  10. 在CodeIgniter中包含视图的最佳方法。