Android 初学者按钮

Android beginner button

尝试移动到新的 activity 并根据按下的按钮传递不同的变量,到目前为止我的代码是

 public void onClickker(View v) {
    switch(v.getId())
    {
        case R.id.answer1: {
            Intent intent = new Intent(getApplicationContext(),Activity2.class);
            intent.putExtra("answer", 1);
            finish();
            startActivity(intent);
            break;
        }
        case R.id.answer2:
            Intent intent2 = new Intent(getApplicationContext(), Activity2.class);
            intent2.putExtra("answer", 1);
            finish();
            startActivity(intent2);
            break;
        case R.id.answer3:

            Intent intent3 = new Intent(getApplicationContext(), Activity2.class);
            intent3.putExtra("answer", 1);
            finish();
            startActivity(intent3);
            break;

        default:
            throw new RuntimeException("Unknow button ID");
    }
    Button btn = (Button)findViewById(R.id.answer1);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            onClickker(v);
        }
    });

    Button btn2 = (Button)findViewById(R.id.answer2);
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onClickker(v);
        }
    });

    Button btn3 = (Button)findViewById(R.id.answer3);
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onClickker(v);
        }
    });

不幸的是,无论何时我按下任何按钮都没有任何反应?任何建议将不胜感激。谢谢你:)

启动 activity 时,不要使用应用程序上下文, 例如,替换

Intent intent = new Intent(getApplicationContext(),Activity2.class);

Intent intent = new Intent(this,Activity2.class);

您在哪里初始化按钮并附加侦听器。根据您发布的代码,您的按钮已在 onclickker 方法中初始化。它们应该在 onCreate() 或从 onCreate() 调用的函数中初始化。

您的第一个 case 格式错误,您只能为每个 case

创建一次 Intent 对象

点击方法

public void onClickker(View v) {
    Intent intent = new Intent(getApplicationContext(),Activity2.class);
    switch(v.getId()){
    case R.id.b1: 
        intent.putExtra("answer", 1);
        break;
    ....
    default:
        throw new RuntimeException("Unknow button ID");
        break;
    }
    startActivity(intent);
    this.finish();
}

按钮侦听器:

Button btn = (Button)findViewById(R.id.b1);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onClickker(v);
    }
});