Я пытаюсь передать HashMap в новое действие, используя функцию intent.puExtra. Поступая через отладчик, кажется, что он добавляет HashMap никакой проблемы, однако, когда вызывается startActivty(), я получаю ошибку времени выполнения, указывающую, что Parcel: не удалось вывести значение com.appName.Liquor.Ошибка AndroidRuntime: Посылка: не удалось маршалировать значение
Ликер - это особый класс, который я создал, и я считаю, что в сочетании с 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);
Liquor Класс
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);
}
}
Sub активность
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 является причиной, но я не могу понять, почему.
Ваша помощь будет очень признательна. Благодаря!
Спасибо, мне пришлось добавить инструменты, которые можно выполнить как для класса Liquor, так и для бутылок. – Jared
это работает. Мне нужно реализовать Serializable в классе Bottle. Спасибо @naikus –
Ликер всегда виноват :)) –