我的应用程序中的一个活动中有三个按钮,我使用了一个开关来编码它们。我在我的应用程序中几次使用几乎相同的代码,但这个特殊的代码不起作用。当我导航到此屏幕并单击三个按钮中的任何一个时,没有任何反应。
以下是无效的代码:
public void buttonOnClick(View view){
switch(view.getId()){
case R.id.generalPrefabButton:
Intent generalPrefabScreen = new Intent();
generalPrefabScreen.setClass(this, General_Prefab_Order.class);
startActivity(generalPrefabScreen);
break;
case R.id.conduitBendButton:
Intent conduitBendScreen = new Intent();
conduitBendScreen.setClass(this, Conduit_Bend_Order.class);
startActivity(conduitBendScreen);
break;
case R.id.safetyReportButton:
Intent safetyReportScreen = new Intent();
safetyReportScreen.setClass(this, Safety_Report.class);
startActivity(safetyReportScreen);
}
}
答案 0 :(得分:1)
Button button = new Button(R.id.generalPrefabButton);
button.setOnClickListener(this);
这将设置onClickListener在onClick方法中激活操作。
答案 1 :(得分:1)
实现此目的的一种方法是让您的类实现OnClickListener
,然后将其添加到按钮中,如下所示:
示例:
//make your class implement OnClickListener
public class MyClass implements OnClickListener{ ... //Create your buttons and set their onClickListener to "this"
Button generalPrefabButton = (Button) findViewById(R.id.buttonplay);
generalPrefabButton.setOnClickListener(this);
Button conduitBendButton = (Button) findViewById(R.id.buttonstop);
conduitBendButton.setOnClickListener(this); ...
//implement the onClick method here
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.generalPrefabButton:
Intent generalPrefabScreen = new Intent();
generalPrefabScreen.setClass(this, General_Prefab_Order.class);
startActivity(generalPrefabScreen);
break;
case R.id.conduitBendButton:
Intent conduitBendScreen = new Intent();
conduitBendScreen.setClass(this, Conduit_Bend_Order.class);
startActivity(conduitBendScreen);
break;
case R.id.safetyReportButton:
Intent safetyReportScreen = new Intent();
safetyReportScreen.setClass(this, Safety_Report.class);
startActivity(safetyReportScreen);
break;
}
}
答案 2 :(得分:0)
将此行添加到布局.xml文件中的按钮: 的机器人:的onClick = “buttonOnClick”强>
<Button
android:id="@+id/button"
android:onClick="buttonOnClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>