我正在尝试将选择器从微调器转换为一个活动中的字符串,然后将此字符串传递给另一个活动,并在按下输入按钮时将其转换为整数。问题是,在我从微调器中选择后,模拟器在我按下回车后不断崩溃。
活动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);
为什么应用程序不断崩溃的任何建议是否存在逻辑错误?
答案 0 :(得分:1)
你发送了额外的错误。它是(key, value)
,你正在做(value, key)
:
alarmSet.putExtra(selection,"sel"); //wrong
尝试
alarmSet.putExtra("sel", selection); //correct
此外,您不需要转换为String,您可以使用Integer值。