Intent.puExtra işlevini kullanarak bir HashMap'i yeni bir etkinliğe geçirmeye çalışıyorum. Hata ayıklayıcıda adım adım HashMap'e sorun eklemiyor gibi görünüyor, ancak startActivty () çağrıldığında Parcel: com.appName.Liquor değerini sıraya koyamadığını belirten bir çalışma zamanı hatası alıyorum.
Likör, oluşturduğum özel bir sınıf ve bir HashMap ile birlikte soruna neden olduğuna inanıyorum. HashMap'im yerine bir dize geçirirsem, bir sonraki etkinliği sorunsuz yükler.
Ana aktivite
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);
Likör Sınıfı
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);
}
}
Alt Aktivite
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);
Çalışma zamanı hatası olduğunda, onu asla alt aktivite sınıfına almaz. Bu yüzden HashMap'in amaca eklenmesinde sorunun var olduğundan oldukça eminim ve hataya dayanarak Liquor sınıfımın neden olduğuna inanıyorum, ancak nedenini anlayamıyorum.
Yardımınız çok takdir edilecektir. Teşekkürler!