java - 按钮 OnClick 开关不起作用

标签 java android switch-statement

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

这是不起作用的代码:

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

最佳答案

实现此目的的一种方法是让您的类实现 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;
 }

}

关于java - 按钮 OnClick 开关不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38212504/

相关文章:

android - 如何在 Android Switch 中为阴影着色?

java - 当我有 PIVOT 时,使用 JPA 如何在 native 查询中设置参数

android - 在 RecyclerView 中绘制自定义 TextView 路径的最佳实践是什么?

java - 在 Java 中从 XML 转换为 JSON

android - Mockito 不模拟存储库

python - 提高代码可读性,让python脚本更优雅

php - 如何在 php 中使用路径信息?

Objective-C:如何在 switch 语句完成后返回到应用程序的开头

java - 如何使用 IOUtils.toInputStream 为 InputStream 提供一个空行

java - 在 ANTLR 解析器中跳过空格