检查第二个活动中选定的单选按钮

时间:2015-03-31 12:24:32

标签: android

在第一个活动中我有两个单选按钮和按钮,我想在选择其中一个并按下按钮意图到第二个活动并显示自我吐司 我的代码在下面,我的应用程序强制关闭

第一项活动

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

3 个答案:

答案 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();
}