AndroidRuntime 오류: 구획: 값을 정렬할 수 없습니다.
intent.puExtra 함수를 사용하여 새로운 액티비티에 HashMap을 전달하려고 합니다.디버거를 진행하면 HashMap이 문제없이 추가되는 것처럼 보이지만 startActivty()가 호출되면 parcel: com.appName 값을 가져올 수 없음을 나타내는 런타임 오류가 나타납니다.술.
리큐는 제가 만든 커스텀클래스로 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을 목적에 추가하는 데 문제가 있는 것은 확실합니다.오류를 바탕으로 Liquar 클래스가 원인이라고 생각합니다만, 그 이유를 알 수 없습니다.
잘 부탁드립니다.감사합니다!
당신의.HashMap
그 자체는 시리얼화할 수 있지만Bottle
클래스 시리얼화 가능합니까?그렇지 않으면 직렬화되지 않고 런타임에 오류가 발생합니다.를 만듭니다.Bottle
class implement the class는java.io.Serializable
인터페이스
나는 이 오류를 받고 있었다 왜냐하면 나의 수업이 그렇지 않았기 때문이다.Serializable
내 수업을 연속화하려면: Serializable
만들 수 있습니다.이것처럼만.
class Shirt(val price: Double, val discountedPrice: Double) : Serializable
반드시 Import 합니다.Serializable
이것처럼.
import java.io.Serializable
언급URL : https://stackoverflow.com/questions/3818745/androidruntime-error-parcel-unable-to-marshal-value
'source' 카테고리의 다른 글
PHP를 통한 SSH 명령 실행 방법 (0) | 2022.11.26 |
---|---|
Vapor와 함께 사용할 수 있도록 MariaDB에 UUID 저장 (0) | 2022.11.26 |
잘못된 접두사 키 MySQL (0) | 2022.11.26 |
사용자로부터 Yes/No 프롬프트를 표시하지 않고 자체 서명 증명서 추가 (0) | 2022.11.26 |
MySql 오류:저장된 함수/트리거를 호출한 문에서 이미 사용되고 있으므로 저장된 함수/트리거의 테이블을 업데이트할 수 없습니다. (0) | 2022.11.26 |