AndroidRuntime त्रुटि: पार्सल: मार्शल मूल्य में असमर्थ


109

मैं आशय के लिए एक नई गतिविधि के लिए एक HashMap को पारित करने की कोशिश कर रहा हूं। डिबगर के माध्यम से कदम रखते हुए ऐसा लगता है कि यह हैशपॉप कोई समस्या नहीं जोड़ता है, हालांकि जब startActivty () कहा जाता है तो मुझे एक रनटाइम त्रुटि मिलती है जो कहती है कि पार्सल: मार्शल मूल्य com.appName.Liquor में असमर्थ।

शराब एक कस्टम वर्ग है जिसे मैंने बनाया है, और मेरा मानना ​​है कि हैशपॉप के संयोजन में यह समस्या पैदा कर रहा है। अगर मैं अपने 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);

जब रनटाइम त्रुटि मौजूद होती है तो वह इसे उप गतिविधि वर्ग में कभी नहीं बनाती है। इसलिए मुझे पूरा यकीन है कि इस समस्या के इरादे के लिए हाशप को जोड़ने में मौजूद है, और त्रुटि के आधार पर मेरा मानना ​​है कि मेरा शराब वर्ग इसका कारण है, लेकिन मैं इसका पता नहीं लगा सकता।

आपकी मदद की बहुत सराहना की जाएगी। धन्यवाद!

जवाबों:


274

आपका HashMapखुद ही धारावाहिक है लेकिन क्या Bottleवर्ग क्रमबद्ध है? यदि नहीं, तो यह क्रमबद्ध नहीं होगा और रनटाइम पर त्रुटियों को फेंक देगा। बनाओ Bottleवर्ग को लागू java.io.Serializableइंटरफ़ेस


5
धन्यवाद, मुझे शराब और बोतल दोनों वर्गों के लिए लागू करने योग्य सीरियल जोड़ना था।
जेरेड

2
यह काम करता है .. मुझे बोतल श्रेणी में सीरियल को लागू करना है। साभार @naikus
अशोकचक्रवर्ती नागराजन

177
शराब को हमेशा दोष दिया जाता है :))
सेज़ार अलेक्जेंड्रू वैंकिया

3
मेरे लिए काम किया :)
जैकी

1
यह काम करता है, लेकिन मैं उलझन में हूं कि सीरियललाइज़ेशन का इससे क्या लेना-देना है? क्या एंड्रॉइड समय-समय पर धारावाहिक और ऑब्जेक्ट को निष्क्रिय करता रहता है? और किन मामलों में मुझे सीरियल इंटरफ़ेस लागू करने की आवश्यकता है (जैसे यहां)?
ऋषभ रंजन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.