将微调器值字符串传递给第二个活动

时间:2012-10-14 05:50:40

标签: android spinner

我正在尝试将选择器从微调器转换为一个活动中的字符串,然后将此字符串传递给另一个活动,并在按下输入按钮时将其转换为整数。问题是,在我从微调器中选择后,模拟器在我按下回车后不断崩溃。

活动1使用微调器选择并输入按钮::

        btnSetAlarm.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            final Dialog d2 = new Dialog(MainActivity.this);
            d2.setContentView(R.layout.inputalarmnum);                                              
            Button btnEnterNum = (Button) d2.findViewById(R.id.btnEnterNum);                
            final Spinner numberAlarmChoice = (Spinner) d2.findViewById(R.id.spinnerAlarmNum);

            btnEnterNum.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    String selection = numberAlarmChoice.getSelectedItem().toString();                      
                    Intent alarmSet = new Intent(getApplicationContext(), AlarmActivity.class);
                    alarmSet.putExtra(selection,"sel");
                    startActivity(alarmSet);
                }
            });
            d2.show();
        }
    });

然后在另一个活动中检索字符串(这来自oncreate方法):

Intent getSel = getIntent();
String selection = getSel.getExtras().getString("sel");
final Integer alarmNumInt = Integer.valueOf(selection);

为什么应用程序不断崩溃的任何建议是否存在逻辑错误?

1 个答案:

答案 0 :(得分:1)

你发送了额外的错误。它是(key, value),你正在做(value, key)

alarmSet.putExtra(selection,"sel"); //wrong

尝试

alarmSet.putExtra("sel", selection); //correct

此外,您不需要转换为String,您可以使用Integer值。