2

から を起動しactivityForResult()ていMainActivityます。ユーザーが で選択したオプションに応じて、またはSecondActivityが返されます。私のオーバーライドでは、返されたデータを最初にテストして、それがまたはそれに応じて処理できるかどうかを確認するにはどうすればよいですか?StringString[]MainActivityonActivityResult()StringString[]

これは私が配列を処理する方法です:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub

                    String[] result =data.getStringArrayExtra("elements");
                    et.setText("");
                    for(int i=0;i<result.length;i++){
                        et.append(result[i].toString());
            }
            }
4

3 に答える 3

9

なぜいつもString[]からを返さないのSecondActivityですか?が1つしかない場合は、その1つをString含むaを返すだけです。これは、同じキーを持つ2つの異なるタイプのオブジェクトを返すのは悪い設計のようです...String []String

于 2013-03-14T22:27:14.917 に答える
1

私はそれらを別のキーに入れます。、およびのようなelementもの。StringelementsString[]

String[] result =data.getStringArrayExtra("elements");
if(result == null)
   String strResult = data.getStringExtra("element");

私はスティーブンが言ったことも支持します。ただし、アプリのデザインとその理由がわからないため、選択する必要があります。

于 2013-03-14T22:31:20.730 に答える
0

あなたはほとんどそれをしました..ただチェックしてください

if(result != null)
   // it is array 
于 2013-03-14T22:25:52.617 に答える