2010-09-29 15 views
67

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

शराब एक कस्टम वर्ग है जिसे मैंने बनाया है, और मुझे विश्वास है कि, हैश मैप के संयोजन में, समस्या पैदा कर रही है। अगर मैं अपने हैश मैप की बजाय स्ट्रिंग पास करता हूं तो यह अगली गतिविधि को कोई समस्या नहीं लोड करता है।

मुख्य गतिविधि

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); 

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

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

उत्तर

169

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

+3

लागू करें, धन्यवाद, मुझे शराब और बोतल दोनों वर्गों के लिए Serializable लागू करना था। – Jared

+1

यह काम करता है .. मुझे बोतल वर्ग में Serializable लागू करना है। धन्यवाद @naikus –

+103

शराब हमेशा दोषी है :)) –

संबंधित मुद्दे