City
कक्षा को Parcelable
लागू करना चाहिए। इसकी toString()
विधि शहर का नाम वापस करनी चाहिए। (। के बजाय सिर्फ एक String
शहर वाले)
जब आप अपने ListView पॉप्युलेट, एक ArrayAdapter<String>
के बजाय एक ArrayAdapter<City>
का उपयोग करें (इस कोड को मान लिया गया है कि शहरों List<City> list
में रखा जाता है):
City[] cities = new City[list.size()];
list.toArray(cities);
mListView = (ListView) findViewById(R.id.citylist);
mListView.setAdapter(new ArrayAdapter<City>(this,
R.layout.listitem, cities));
में अपने onItemClick हैंडलर, चयनित शहर हो और इरादे आप अपने विवरण गतिविधि शुरू करने के लिए उपयोग करने पर एक अतिरिक्त के रूप में जोड़ें:
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a,
View v, int position, long id) {
City city = (City) a.getItemAtPosition(position);
Intent intent = new Intent(v.getContext(), DetailsActivity.class);
intent.putExtra("com.example.cities.City", city);
startActivity(intent);
}
});
आपके विवरण गतिविधि में, पर एक्स्ट्रा कलाकार से शहर मिलता है इरादा:
Bundle bundle = getIntent().getExtras();
City city = bundle.getParcelable("com.example.cities.City");
स्रोत
2011-03-14 15:00:59
आपने अभी तक क्या प्रयास किया? लगता है कि एक [listview] (http://developer.android.com/reference/android/widget/ListView.html) – Adinia
का एक सरल कार्यान्वयन लगता है मैंने थोड़ा कठिन विचार किया, और मुझे लगता है कि मैं एक चयनित शहर वस्तु को स्टोर करूंगा मेरा एप्लिकेशन सबक्लास, और जब मैं क्लिक पर एक नया इरादा शुरू करूंगा, तो वह गतिविधि मेरे एप्लिकेशन सबक्लास में संग्रहीत ऑब्जेक्ट से डेटा का उपयोग करेगी। – Cumatru