在第一个活动中我有两个单选按钮和按钮,我想在选择其中一个并按下按钮意图到第二个活动并显示自我吐司 我的代码在下面,我的应用程序强制关闭
第一项活动
@Override
public void onClick(View view) {
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup2);
int selection = radioGroup.getCheckedRadioButtonId();
if (selection==R.id.rb4) {
Intent intent = new Intent(getApplicationContext(),MyActivity2.class);
intent.putExtra("art","0") ;
startActivity(intent);
}
else if (selection==R.id.rb5) {
Intent i = new Intent(getApplicationContext(),MyActivity2.class);
i.putExtra("sport","1") ;
startActivity(i);
}
}
});
第二项活动
String value = getIntent().getExtras().getString("art");
String value2 = getIntent().getExtras().getString("sport");
if (value.equals("0")){
Toast.makeText(getApplicationContext(), "this is my Toast message1)",
Toast.LENGTH_LONG).show();
}
else if (value2.equals("1")){
Toast.makeText(getApplicationContext(), "this is my Toast message2)",
Toast.LENGTH_LONG).show();
}
答案 0 :(得分:0)
问题出在这里
String value = getIntent().getExtras().getString("art");
String value2 = getIntent().getExtras().getString("sport");
您只从第一个活动
发送一个值即" art"将被发送或" sport"将被发送,而在你的第二个活动中你将获取两个值。所以这将最终作为nullpointerexception每次。
答案 1 :(得分:0)
更好的解决方案是使用静态变量
在第一个活动声明中, public static int num;
如果选择== R.id.rb4而不是set num = 1;
if(selection == R.id.rb5)而不是set num = 2;
在第二项活动中,如果检查>>第一个activity.num == 1比给toast1 第一个activity.num == 2给toast2
删除putextra并获得额外的...
答案 2 :(得分:0)
使用此代码
@Override
public void onClick(View view) {
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup2);
int selection = radioGroup.getCheckedRadioButtonId();
if (selection==R.id.rb4){
Intent intent = new Intent(getApplicationContext(),MyActivity2.class);
intent.putExtra("art","0") ;
startActivity(intent);
}
else if (selection==R.id.rb5){
Intent i = new Intent(getApplicationContext(),MyActivity2.class);
i.putExtra("art","1") ;
startActivity(i);
}
}
});
第二项活动
String value = getIntent().getExtras().getString("art");
if (value.equals("0")){
Toast.makeText(getApplicationContext(), "this is my Toast message1)",
Toast.LENGTH_LONG).show();
}
else if (value.equals("1")){
Toast.makeText(getApplicationContext(), "this is my Toast message2)",
Toast.LENGTH_LONG).show();
}