Android初学者按钮

时间:2015-11-03 10:50:41

标签: android button onclick

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

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

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

3 个答案:

答案 0 :(得分:0)

启动活动时,请勿使用应用程序上下文, 例如,替换

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

创建case个对象一次

点击方法

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