Tôi đang cố gắng chuyển một HashMap đến một hoạt động mới bằng cách sử dụng hàm ý định.puExtra. Bước qua trình gỡ lỗi, có vẻ như nó thêm HashMap không có vấn đề gì, tuy nhiên khi startActivty () được gọi, tôi nhận được lỗi thời gian chạy cho biết rằng Parcel: không thể điều chỉnh giá trị com.appName.Liquor.
Liquor là một lớp tùy chỉnh mà tôi đã tạo và tôi tin rằng nó, kết hợp với HashMap, đang gây ra sự cố. Nếu tôi chuyển một chuỗi chứ không phải HashMap của tôi, nó sẽ tải hoạt động tiếp theo không có vấn đề gì.
Hoạt động chủ yêu
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);
Loại rượu
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);
}
}
Hoạt động phụ
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);
Khi lỗi thời gian chạy tồn tại, nó sẽ không bao giờ đưa nó vào lớp hoạt động phụ. Vì vậy, tôi khá chắc chắn rằng vấn đề tồn tại khi thêm HashMap vào mục đích và dựa trên lỗi, tôi tin rằng lớp Liquor của tôi là nguyên nhân, nhưng tôi không thể tìm ra lý do.
giúp đỡ của bạn sẽ được nhiều đánh giá cao. Cảm ơn!