0

あるアクティビティで選択範囲をスピナーから文字列に変換してから、この文字列を別のアクティビティに渡して、入力ボタンが押されたときに整数に変換しようとしています。問題は、スピナーから選択した後、Enter キーを押した後もエミュレーターがクラッシュし続けることです。

スピナーの選択と入力ボタンを使用したアクティビティ 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);

アプリがクラッシュし続ける理由についての提案はありますか?論理的なエラーはありますか?

4

1 に答える 1

1

あなたは余分なものを間違って送っています。それ(key, value)は、あなたがやっている(value, key)

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

試す

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

また、文字列に変換する必要はありません。整数値を持つエクストラを使用できます。

于 2012-10-14T05:56:54.173 に答える