方法一:指定按钮功能
1)Activity_main.xml增加两个按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:onClick="onClick"
android:text="Button1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:onClick="onClick"
android:text="Button2"
android:layout_marginStart="55dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/button1"/>
2)修改string.xml
<string name="button1">button1</string>
<string name="button2">button2</string>
3)修改MainActivity.java,增加如下内容
Toast tst;
public void onClick(View view){
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
}
总结:这种方法是在xml文件中指定按钮的onclick属性,这样点击按钮就会利用反射的方式调用对应Activity中的onClick方法
方法二:自定义事件
1)增加onClick()方法
public void onClick(View view) {
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
2)在onCreate方法中调用onClick方法
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn1.setOnClickListener(new clickListener());
btn2.setOnClickListener(new clickListener());
方法三:
1)重写onClick方法
public void onClick(View view){
switch (view.getId()){
case R.id.button1:
tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);
tst.show();
break;
default:break;
}
}
2)修改onCreate方法
btn1=(Button)findViewById(R.id.button1);
btn2=(Button)findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
总结:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30046312/viewspace-2137133/ ,如需转载,请注明出处,否则将追究法律责任。