2017-12-10 20 views
0

메일 링 응용 프로그램을 만들고 있습니다. 내가 뭘 원하는 일부 연락처를 선택하고 composeMailActivity로 다시 보낼에 추가를 클릭 chooseContactsActivity composeMailActivity에서 공개 목록입니다. 내가 한 첫 번째 일은 string을 전달한 액티비티 사이를 통과하는 표준이었고 올바른 문자열은 composeMailActivity에 전달되고 인식되었습니다. 그런 다음 연락처 번호가 arrayListstrings을 추가했습니다. chooseContactsActivity에서는 디버깅 할 때 올바르게 인식되지만 composeMailActivity에서는 null을 반환합니다. Intent를 통해 문자열의 ArrayList를 반환하는 경우 null 값을 얻습니다.

내가 시도 답변의 일부

은 다음과 같습니다 1, 2, 3, 4, 5 ...

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

당신은 그것은 작동이

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

처럼 onActivityResult(int requestCode, int resultCode, Intent data) 대신 getIntent()dataIntent를 사용해야하지만 그는 전에 몇 초 대답하지만 최대 투표 때문에 TOMTOM의 답변을 받아 들였다. 답변 주셔서 감사합니다 – Kemo

+1

문제 없습니다. 내가 너를 도울 수있어서 행복 했어. –