安卓一个点击方法为多个按钮?
我开始在Android中编程,我在一个活动中有3个按钮。
我看到一些示例代码,它们将相同的事件分配给所有按钮(即使它们执行完全不同的操作),并且在方法案例中...OnClick
Switch(id)
什么是更好的方法?一种方法和切换还是很多方法,每个按钮一个?onClick
谢谢。
我开始在Android中编程,我在一个活动中有3个按钮。
我看到一些示例代码,它们将相同的事件分配给所有按钮(即使它们执行完全不同的操作),并且在方法案例中...OnClick
Switch(id)
什么是更好的方法?一种方法和切换还是很多方法,每个按钮一个?onClick
谢谢。
使用方法:
@Override
public void onCreate(Bundle savedInstanceState) {
button1.setOnClickListener(onClickListener);
button2.setOnClickListener(onClickListener);
button3.setOnClickListener(onClickListener);
}
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
//DO something
break;
case R.id.button2:
//DO something
break;
case R.id.button3:
//DO something
break;
}
}
};
如果你想减少编码行,那么使用,如果你想单独处理所有点击(为了便于理解和维护代码),那么使用单独的所有View's OnClick() with switch statement
button's onClick().
更新:
如果已在活动布局 xml 文件中声明了按钮,则为所有按钮使用相同的方法名称写入属性,并在活动中实现该方法。现在,对于所有按钮,您都有一个方法,并且在该方法中,使用id区分按钮。android:onClick=""
例:
<?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="wrap_content"
android:onClick="buttonOnClick"
android:layout_height="wrap_content"
android:text="Hello, I am a Button 1" />
<Button android:id="@+id/button2"
android:layout_width="wrap_content"
android:onClick="buttonOnClick"
android:layout_height="wrap_content"
android:text="Hello, I am a Button 2" />
<Button android:id="@+id/button3"
android:layout_width="wrap_content"
android:onClick="buttonOnClick"
android:layout_height="wrap_content"
android:text="Hello, I am a Button 3" />
</LinearLayout>
现在在您的活动中实现如下:buttonOnClick
public void buttonOnClick(View view)
{
switch(view.getId())
{
case R.id.button1:
// Code for button 1 click
break;
case R.id.button2:
// Code for button 2 click
break;
case R.id.button3:
// Code for button 3 click
break;
}
}
或者,您可以对活动中动态添加的按钮应用相同的开关大小写,例如,您不必使用已实现的 View 的 OnClickListerner 的 。buttonOnClick
onClick