2012-06-25 1 views
5

이에 ArrayList를 을 통과 할 수 없음 코드 여기 가 활동

List<MyObject> list = (List<MyObject>)getIntent().getExtras().getParcelable("list"); 

리스트가 null

ArrayList<MyObject> list = new ArrayList<MyObject>(); 
list.add(new MyObject()); 
Intent intent = new Intent(this, ReceiverActivity.class); 
intent.putExtra("list", list); 
startActivity(intent); 

ReceiverActivity입니다. 또한이 작동하지 않습니다 :

List<MyObject> list = (List<MyObject>)getIntent().getExtras().getSerializable("list"); 

MyObject는 Parcelable, 나는 모든 필요한 방법을 구현했습니다. 그렇지 않으면 예외의 다른 종류를 recifer 것입니다 때문에이 구현 문제가 아니라고 생각합니다. 하지만 목록 이외의 아무것도 얻지 못합니다 null입니다. 사전에

감사합니다 ...

지금 내가 발견이 : 수신 활동에 사용되어야하지만,

List<Parcelable> list = (List<Parcelable>)getIntent().getParcelableArrayListExtra("list"); 

나는 그것을 보내려면 어떻게합니까 어떻게 내가 List<Parcelable>에서 List<MyObject>을 얻는 방법 ?

답변

15

USe i.putParcelableArrayListExtra(name, value) 여기서 i는 사용자의 의도입니다. Parcelable ArrayList에 대해 putExtra()를 사용하지 마십시오.

+0

방법 getParcelableArrayListExtra 나를 가 어떻게 ArrayList를받을 수 있나요 ArrayList를 준다? 요소를 형변환하거나 ArrayList 유형의 새 복사본을 인스턴스화해야하는 것처럼 보입니까? – Ixx

+0

개체가 Parcelable을 구현해야합니다. 그래서 그들은 잘해야합니다. – Akhil

+0

리스트에 있고 generics가 공변 적이 지 않기 때문에 캐스팅 할 수 없습니다. – Ixx

6

시도 :

ArrayList<MyObject> myList = extras.<MyObject>getParcelableArrayList("list")); 
+0

그냥 메모로. 인 텐트 자체는 intent.getParcelableArrayListExtra ("name")입니다. –