buttonOnClick开关无法正常工作

时间:2016-07-05 20:51:59

标签: java android switch-statement

我的应用程序中的一个活动中有三个按钮,我使用了一个开关来编码它们。我在我的应用程序中几次使用几乎相同的代码,但这个特殊的代码不起作用。当我导航到此屏幕并单击三个按钮中的任何一个时,没有任何反应。

以下是无效的代码:

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

3 个答案:

答案 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"
/>