Próbuję przekazać HashMap do nowego działania za pomocą funkcji intent.puExtra. Po przejściu przez debugger wydaje się, że dodaje on HashMap bez problemu, jednak po wywołaniu metody startActivty () pojawia się błąd w czasie wykonywania, informujący, że Parcel: nie można zorganizować wartości com.appName.Liquor.
Alkohol to niestandardowa klasa, którą stworzyłem i uważam, że to w połączeniu z HashMap powoduje problem. Jeśli przekażę ciąg znaków, a nie moją HashMap, załaduje następną czynność, bez problemu.
Główna aktywność
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);
Klasa likierów
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);
}
}
Działanie podrzędne
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);
Gdy błąd czasu wykonania istnieje, nigdy nie trafia do podklasy działania. Jestem więc prawie pewien, że problem istnieje w dodawaniu HashMap do intencji i na podstawie błędu uważam, że przyczyną jest moja klasa Liquor, ale nie mogę dowiedzieć się, dlaczego.
Twoja pomoc będzie bardzo doceniona. Dzięki!