ListView erstellen mit Daten

  • Antworten:1
  • Bentwortet
Marcel Bruckmann
  • Forum-Beiträge: 5

01.05.2013, 21:05:20 via Website

Hallo an Alle!

Ich möchte gerne eine ListView erstellen, die sich die Daten aus einer arrays.xml holt mit Hilfe von string-array. So weit so gut. In der ListView stehen also jetzt die Daten. Durch public void onListItemClick() in meiner Klasse habe ich herausgefunden, dass ich für jedes Item meiner Liste einen Toast ausgeben kann. In meiner App möchte ich aber nicht einen Toast ausgeben sondern eine neue Activity aufrufen. Das geht mit startActivity(new Intent(this, ABC.class)); . Das Layout sollte bei jedem ITEM gleich sein. In dem Layout sind Textviews, die sich je nachdem welches ITEM angeklickt wurde ändern.

Als Beispiel könnte eine Liste von Autonamen haben. Klickt man auf ein Auto, so bekommt man in der neuen Activity die Daten (PS, Kilometerstand, Farbe usw.) angezeigt.

1arrays.xml
2
3<?xml version="1.0" encoding="utf-8"?>
4<resources>
5 <string-array name="autoliste">
6
7 <item>Mercedes</item>
8 <item>Audi</item>
9
10 </string-array>
11</resources>

1activity_main.xml
2<ListView
3 android:id="@+id/android:list"
4 android:layout_width="fill_parent"
5 android:layout_height="wrap_content"
6 />

1public class AutoAuswahl extends ListActivity {
2 protected void onCreate(Bundle savedInstanceState){
3 super.onCreate(savedInstanceState);
4 setContentView(R.layout.activity_main);
5 ArrayAdapter<String> adapter =
6 new ArrayAdapter<String>(
7 this,
8 android.R.layout.simple_list_item_1,
9 getResources().getStringArray(R.array.autoliste));
10 setListAdapter(adapter);
11
12 }
13
14public void onListItemClick(
15 ListView l, View v, int position, int id){
16
17 startActivity(new Intent(this, ABC.class));
18
19}
20}

Durch eine Klasse Auto habe ich das Grundkonstrkt gebaut:

1class Auto{
2
3 private String ps;
4 private String kilometer;
5
6 public Frage(String p, String k){
7 pferdestaerken = p;
8 kilometer = k;
9
10 }
11
12 public void anzeigen(Activity activity_auto ){
13 ((TextView) activity_verb.findViewById(id.kilometer)).setText(kilometer);
14 ((TextView) activity_verb.findViewById(id.pferdestaerken)).setText(pferdestaerken);
15 }
16}

Wie könnte ich das lösen? Wenn ich auf ein Item klicke kann ich ja ein String ausgeben lassen. Aber vielleicht gibt es auch noch eine andere Lösung. Jedenfalls komme ich hier nicht weiter. Ich hoffe ihr könnt mir weiterhelfen. Wenn noch fragen sind (da ich noch Leihe bin), einfach stellen.

Grüße

Antworten
impjor
  • Forum-Beiträge: 1.793

05.05.2013, 13:38:59 via App

Du hast eine Klasse Auto, aber der konstruktor heißt Frage?
Informationen für deine Activity kann man über Intents verschicken.
LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten