尝试移动到一个新活动并根据按下的按钮传递一个不同的变量,到目前为止我的代码是
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);
}
});
不幸的是,每当我按任何按钮时都没有任何反应?任何建议将不胜感激。谢谢你们:)
答案 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);
}
});