반응형
AndroidRuntime 오류 : Parcel : 값을 마샬링 할 수 없습니다.
intent.puExtra 함수를 사용하여 HashMap을 새 활동에 전달하려고합니다. 디버거를 단계별로 실행하면 HashMap이 문제없이 추가되는 것 같지만 startActivty ()가 호출되면 Parcel : cannot marshal value com.appName.Liquor라는 런타임 오류가 발생합니다.
Liquor는 내가 만든 사용자 지정 클래스이며 HashMap과 함께 사용하면 문제가 발생한다고 생각합니다. 내 HashMap 대신 문자열을 전달하면 다음 활동이 문제없이로드됩니다.
주요 활동
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String cat = ((TextView) view).getText().toString();
Intent i = new Intent(OhioLiquor.this, Category.class);
i.putExtra("com.appName.cat", _liquorBase.GetMap());
startActivity(i);
주류 클래스
public class Liquor
{
public String name;
public int code;
public String category;
private HashMap<String, Bottle> _bottles;
public Liquor()
{
_bottles = new HashMap<String, Bottle>();
}
public void AddBottle(Bottle aBottle)
{
_bottles.put(aBottle.size, aBottle);
}
}
하위 활동
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
HashMap<Integer, Liquor> map = (HashMap<Integer, Liquor>)getIntent().getSerializableExtra("com.appName.cat");
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, GetNames(map)));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
런타임 오류가 있으면 하위 활동 클래스에 포함되지 않습니다. 그래서 나는 HashMap을 의도에 추가하는 데 문제가 있다고 확신하고 오류를 기반으로 Liquor 클래스가 원인이라고 생각하지만 이유를 알 수 없습니다.
귀하의 도움을 많이 주시면 감사하겠습니다. 감사!
귀하의 HashMap
자체 직렬화하지만입니다 Bottle
클래스의 직렬화는? 그렇지 않으면 직렬화되지 않으며 런타임에 오류가 발생합니다. 만들기 기능 Bottle
클래스가 구현하는 java.io.Serializable
인터페이스를
참고 URL : https://stackoverflow.com/questions/3818745/androidruntime-error-parcel-unable-to-marshal-value
반응형
'Programming' 카테고리의 다른 글
C 문자 배열 초기화 (0) | 2020.08.27 |
---|---|
Android M 용 build.grade에 Apache HTTP API (레거시)를 컴파일 시간 종속성으로 추가하는 방법은 무엇입니까? (0) | 2020.08.27 |
rsync-rsync 로그에서 f +++++++++는 무엇을 의미합니까? (0) | 2020.08.27 |
Linux에서 데몬 만들기 (0) | 2020.08.27 |
console.log 출력은 어디에 저장됩니까? (0) | 2020.08.27 |