2012-01-25 23 views
11

मैं अलग-अलग स्टोर दिखाने के लिए एक सूची एडाप्टर का उपयोग कर रहा हूं, जब कोई स्टोर स्टोर करता है तो यह उन्हें एक नई गतिविधि में ले जाता है जहां वे उस स्क्रीन पर पसंदीदा में स्टोर जोड़ सकते हैं।एंड्रॉइड ऑनर्यूम अपडेट सूची एडाप्टर

उस कॉल पर एक बैक बटन है finish(); जो सूचीदृश्य के साथ स्क्रीन पर वापस जाता है।

अब समस्या यह है कि सूचीदृश्य अपडेट नहीं किया गया है (यानी यह नहीं दिखाता कि स्टोर पहले से ही पसंदीदा में जोड़ा गया है)।

@Override 
public void onResume() { 
    super.onResume(); 
    list.setAdapter(null);  
    updateMyList(); 
    adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])), 
     ((String[])status.toArray(new String[0]))); 
    list.setAdapter(adapter); 
} 

updateMyList() सर्वर API कॉल और नाम और स्थिति सरणियों अद्यतन करता है: मैं इस कोड है, लेकिन कोई किस्मत की कोशिश की।

इस कोड को सूची वास्तव में अपडेट नहीं होता के साथ

...

+0

http://stackoverflow.com/a/17333384/596555, आपकी मदद कर सकता है – boiledwater

उत्तर

29

आपको onCreate() में केवल onResume() के अंदर एडाप्टर सेट करना चाहिए, आपको डेटा के नए संग्रह के साथ adapter.notifyDataSetChanged() पर कॉल करना पड़ा था। यह डेटा के नए संग्रह के साथ आपकी ListView रीफ्रेश करेगा।

0

ListView के लिए नए दृश्य जोड़ने से पहले सभी पिछले दृश्य

listView.removeAllViews(); 

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

1
सभी यू ArrayList करने के लिए दुकानों की सूची में जोड़ने की जरूरत के

पहले, इस सरणी सूचीअनुकूलक को फिर सबमिट सूची दृश्य

list.setAdapter(adapter); 

यह भंडार प्रदर्शित करेगा में जोड़ने सूची; onListItemClick लें वहां क्लिक करें आपको listItem आईडी मिलेगा; सूची आइटम आईडी का उपयोग करके यू इस

Intent intent=new Intent(getApplicationContext(),------.class); 
    startActivityForResult(intent); 

तरह आशय दे सकते हैं एक जावा सेम/सेटर और गेटर तरीकों वर्ग ले लो; गेटटर विधि को स्थिर के रूप में लें, स्टोर गतिविधि को सेट करें जिसे आपने बाल गतिविधि में बनाया है; onBackPressed() नामक ओवरराइड विधि; उस विधि के अंदर

setResult(RESULT_OK); 
finish(); 

पेरेंट क्लास में onActivityForResult() विधि लें; उस विधि

arraylist.add(javabeanClassname.getName()); 

के अंदर Adapter है कि ArrayList जोड़ने और कोड

list.setAdapter(adapter); 
4

उपयोग इस कोड को लिखें:

myList.clear(); 
myList.add("your array list items");    
setListAdapter(adapter); 
adapter.notifyDataSetChanged(); 

मुझे लगता है कि यह आप में मदद मिलेगी।

धन्यवाद ....