나는 SparseArray<myObject>
이며, 내 활동에 onSaveInstanceState
방법으로 번들로 저장하고 oncreate
에 복원하고 싶습니다.sparsearray를 묶음으로 저장하는 방법
bundle.putSparseParcelableArray("mySparseArray", mySparseArray);
그러나 ECLIPS이 오류 보여줍니다 :
The method putSparseParcelableArray(String, SparseArray<? extends Parcelable>) in the type Bundle is not applicable for the arguments (String, SparseArray<myObject>)
그리고 빠른 수정이 SparseArray<? extends Parcelable>
에 인수 mySparsArray
캐스팅되어 있지만 경우에 나는 번들에 SparseArray 넣어위한 putSparseParcelableArray
방법을 발견하고 onSaveInstanceState
방법으로 이런 짓을 그렇게와에서 onCreate 방법으로 그것을 얻을 :
mySparseArray = (SparseArray<myObject>) savedInstanceState.getSparseParcelableArray("mySparseArray");
는이 오류를 가져옵니다
Cannot cast from SparseArray<Parcelable> to SparseArray<myObject>
이 방법이 잘못되면 mySparseArray를 번들에 넣기위한 해결책은 무엇입니까? 도움을 주시면 감사하겠습니다.
'myObject' 무엇입니까? 'Parcelable'을 구현합니까? – Wenhui
정의한 클래스이며 아무 것도 구현하지 않은 사용자 정의 클래스입니다. Parcelable을 구현해야합니까? – Ehsan
예,'putSparseParcelableArray' 인수를 살펴보면, 그것은'SparseArray Parcelable>'을 확장하므로 Parcelable을 구현하는 객체 만 번들에 넣을 수 있습니다. 'Parcelable '을 구현하는 방법에 대한 도움이 필요합니까? 매우 간단합니다. – Wenhui