9 Stimmen

So zeigen Sie detaillierte Daten eines bestimmten Listenelements an

Nehmen wir an, ich habe eine Liste von Städten aus einem Land. Wenn der Benutzer auf eine davon klickt, möchte ich, dass ein neuer Bildschirm mit den detaillierten Informationen zu diesem Listenelement angezeigt wird. Außerdem soll dieser Bildschirm weitere Schaltflächen enthalten (z.B.: Bewertung schreiben, Bild posten).

Wie kann ich das erreichen?

17voto

David Conrad Punkte 14364

Le site City Klasse sollte implementieren Parcelable . Seine toString() Methode sollte den Namen der Stadt zurückgeben. (Anstatt die Stadt einfach als String .)

Wenn Sie Ihre ListView auffüllen, verwenden Sie eine ArrayAdapter<City> anstelle eines ArrayAdapter<String> (dieser Code geht davon aus, dass die Städte in 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));

Holen Sie sich in Ihrem onItemClick-Handler die ausgewählte Stadt und fügen Sie sie als Extra zu der Absicht hinzu, die Sie zum Starten Ihrer Detailaktivität verwenden:

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

Holen Sie sich in Ihrer Detailaktivität die Stadt aus den Extras auf dem Vorsatz:

Bundle bundle = getIntent().getExtras();
City city = bundle.getParcelable("com.example.cities.City");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X