Andriod点击按钮响应方法

点击按钮响应有许多方法,比如下面这种:

布局layout.xml中定义一个id为button的按钮
<Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
在活动的java文件中按钮响应代码:
 Button btn = findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
            	//按钮响应事件
            }
        });

上面方法可以实现点击按钮响应,不过在同一个活动中出现多个按钮时,会很麻烦
此时选用下面的方法,感觉能省很多事

import andriod.view.View这一句需要放入文件头,否则下面使用VIew时他不会提示你补全

public class test extends AppCompatActivity implements View.OnClickListener{
//其中 implements View.OnClickListener十分重要,他实现了View超类的监听器(一定要在文件头导入View)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
		
		//下面的代码就是获取活动中所有的按键,并且设置监听器监听
        Button btn = findViewById(R.id.button);
        btn.setOnClickListener(this);
        Button btn2 = findViewById(R.id.button2);
        btn2.setOnClickListener(this);
    }

    @Override
    public  void onClick(View v){
    //通过判断点击的按钮id去实现响应
        if(v.getId()==R.id.button)
        Log.i("msg","button 1");
        else if(v.getId()==R.id.button2)
            Log.i("msg","button 2");
    }
}

这是我点击不同按钮后的结果
在这里插入图片描述

如果按钮很多可以用switch语句

//注册监听器
public View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Button button = (Button)view;
            Intent intent = new Intent();
            switch (button.getId()){
                case R.id.button1:
                    intent.setClass(MainActivity.this,SecondActivity.class);
                    startActivity(intent);
                    break;
                case R.id.button2:
                    intent.setClass(MainActivity.this,ThirdActivity.class);
                    startActivity(intent);
                    break;
                default:
            }
        }
    };


        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取按钮
        Button button1 = findViewById(R.id.button1);
        Button button2 = findViewById(R.id.button2);
        //注册监听器
        button1.setOnClickListener(listener);
        button2.setOnClickListener(listener);

    }


posted @ 2019-03-04 20:53  clay_ace  阅读(162)  评论(0编辑  收藏  举报