【问题标题】:Switch statement doesn't work in Android studio with ButtonSwitch 语句在带有 Button 的 Android Studio 中不起作用
【发布时间】:2016-10-27 21:44:03
【问题描述】:

我是 Android 和 java 编程的初学者,所以我不明白为什么我的 switch 语句不适用于按钮元素。

  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.TextView;

  public class MainActivity extends AppCompatActivity {
  Button button1;
  Button button2;
  Button button3;
  TextView textView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

      button1 = (Button) findViewById(R.id.button1);
      button2 = (Button) findViewById(R.id.button2);
      button3 = (Button) findViewById(R.id.button3);
      textView = (TextView) findViewById(R.id.textView);

    View.OnClickListener onClickListener = new View.OnClickListener() {
       @Override

这是我的问题

          public void onClick(View v) {
           switch(v.getId()){
              case R.id.button1:
                  textView.setText("Button1 was pressed");
                     break;
              case R.id.button2:
                  textView.setText("Button2 was pressed");
                     break;
             case R.id.button3:
                  textView.setText("Button3 was pressed");
                     break;
                  }
               }
             };



       }
      }

如果有人帮助我,我将非常感激。

附: 我是编程初学者

【问题讨论】:

  • 如果有任何错误,请发布?
  • 不,应用程序正在运行,但当我点击它们时 textView 不会更改文本
  • 请用调试器单步调试代码,找出意外发生的地方。
  • 按下按钮时查看logcat
  • 调试器会告诉您比我们所能提供的更多信息。

标签: android android-studio


【解决方案1】:

您还没有在Button 上写setOnClickListner 并确保您的Activity implements View.OnClickListener 请参阅下面的代码。

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);

使用此代码。

public class MainActivity extends AppCompactActivity implements View.OnClickListener {

    Button button1;
    Button button2;
    Button button3;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
        textView = (TextView)findViewById(R.id.textview) ;

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.button1:
                textView.setText("Button1 was pressed");
                break;
            case R.id.button2:
                textView.setText("Button2 was pressed");
                break;
            case R.id.button3:
                textView.setText("Button3 was pressed");
                break;
        }

    }
}

【讨论】:

  • @User_art 很高兴为您提供帮助。
猜你喜欢
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多