source

AndroidRuntime 오류: 구획: 값을 정렬할 수 없습니다.

manycodes 2022. 11. 26. 13:58
반응형

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클래스 시리얼화 가능합니까?그렇지 않으면 직렬화되지 않고 런타임에 오류가 발생합니다.를 만듭니다.Bottleclass 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

반응형