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);
}