2017-12-10 14 views
0

私は郵送用アプリケーションを作成しています。私は何をしたいいくつかの連絡先を選択し、composeMailActivityに戻ってそれらを送信するために[追加]をクリックし、chooseContactsActivity composeMailActivityからオープンリストです。私が最初にしたことは、標準のパスで、私がstringを渡して、正しい文字列が渡され、composeMailActivityで認識されたということです。それからarrayListstrings - をcontact idsに追加しました。 chooseContactsActivityではデバッグ時に正しく認識されますが、composeMailActivityにはnullが返されます。インテントで文字列の配列リストを返す場合nullを取得する値

私が試した答えの一部が含まれます:12345 ...

ChooseContactsActivity:

addButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 

      ArrayList<String> selectedIds = adapter.selectedIds; 

      String text = "abc"; 

      Intent intent = new Intent(); 
      intent.putStringArrayListExtra("contacts_added", selectedIds); 
      setResult(RESULT_OK, intent); 
      finish(); 
     } 
}); 

ComposeMailActivity:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 
      ArrayList<String> get_contacts = getIntent().getExtras().getStringArrayList("contacts_added"); 
     } 
    } 
} 

答えて

4

あなたはonActivityResult(int requestCode, int resultCode, Intent data)の代わりに、この

if (resultCode == RESULT_OK) { 
      ArrayList<String> get_contacts = data.getExtras().getStringArrayList("contacts_added"); 
     } 
+0

それは、私はできるだけ早くあなたの答えを受け入れます:D – Kemo

4

を私がしようと思います"contacts_added"フォーム "データ"を取得します。 getIntent()を呼び出す代わりに

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 
      ArrayList<String> get_contacts = data.getExtras().getStringArrayList("contacts_added"); 
     } 
    } 
} 

とすると、これで問題は解決します。

+0

ようgetIntent()dataIntentを使用する必要がありますそれは動作しますが、彼は数秒前に答えたので、私はTomTomの答えを受け入れたが、私は投票しました。あなたの答えをありがとう – Kemo

+1

問題ありません。私はあなたを助けることができたことをうれしく思いました。 –