Wie kann ich Text aus einer Listitem ausgeben?

  • Antworten:11
  • Bentwortet
ute neff
  • Forum-Beiträge: 12

26.05.2015, 17:31:53 via Website

Hallo liebe Entwickler,

ich habe eine ListView und möchte nun mit den einzelnen ListItems Text ausgeben? Wie mache ich das am Besten?
Und wo speichere ich den Text, den ich ausgeben möchte?

vielen Dank schon mal für Eure Hilfe.

LG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.293

26.05.2015, 17:50:30 via App

Hallo ute,
das kommt alles auf den Verwendungszweck an. Beim Text spechern fällt mir zuerst mal die strings.xml ein in welcher du Text speichen kannst. Das ist aber nur einseitig, da du per Code die Strings nur lesen undnicht editieren kannst. Wenn du etwas ändern willst würde ich die SharedPreferences, eine Datenbank( nur bei vielen Strings) oder eine normale Textdatei nehmen.

Um das zu realisieren musst du für die ListView eine ItemClick listener definieren indem du dann deine Aktionen ausführst. Um zu erkennen welches Item gedrück wurde wird dir da eine Position als Parameter übergeben auf welche du dann explizit oder dynamisch reagieren kannst.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

26.05.2015, 17:56:02 via Website

Hallo Pascal,

Danke erstmal. Aber wen ich jetzt drei ListItems habe und alle sollen einen unterschiedlichen Text ausgeben, wie definiere ich das in der string.xml?

Antworten
ute neff
  • Forum-Beiträge: 12

26.05.2015, 18:07:33 via Website

Ach ich weiß schon...

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.293

26.05.2015, 18:27:43 via App

Dann ist ja gut ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

27.05.2015, 13:11:09 via Website

Hallo zusammen,

ich bin mit meiner ListView immer noch nicht weiter, deshalb habe ich den Beitrag wieder aufgenommen.

Ich habe die ListView in einen BaseAdapter gepackt. Aber wie kann ich nun daraus auf die einzelnen ListItems zugreifen?

Poste mal den Code:

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ListView lv = (ListView) findViewById(R.id.list_view);

    lv.setAdapter(new BaseAdapter() {
        @Override
        public int getCount() {
            return Note.getNoten().size();
        }

        @Override
        public Object getItem(int i) {
            return Note.getNoten().get(i);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            View meineZeile = view;
            if (meineZeile == null)
                meineZeile = getLayoutInflater().inflate(R.layout.meine_zeile, viewGroup, false);

            Note note = Note.getNoten().get(i);

            ImageView iv = (ImageView) meineZeile.findViewById(R.id.meine_zeile_bild);
            iv.setImageResource(note.grafik);

            TextView tv = (TextView) meineZeile.findViewById(R.id.meine_zeile_text);
            tv.setText(note.text);

            return meineZeile;
        }
    });


}

}

Wäre für ein bisschen Hilfe dankbar.

LG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.293

27.05.2015, 18:51:55 via App

Jetzt ist die Frage, willst du beim erstellen auf das Item zugereifen oder beim klick darauf?

— geändert am 27.05.2015, 18:52:13

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

28.05.2015, 10:43:55 via Website

Beim Klick darauf...

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.293

28.05.2015, 20:55:45 via Website

Dafür kannst du den onItemClickListener nehmen:

    lv.setOnItemClickListener(new OnItemClickListener()
{
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
    { 
        //Verarbeitung des clicks. Position gibt die gedrükte Position an. Diese kannst du dann als Item laden indem du in deiner Noten Liste ein get der Position machst.
    }
});

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

29.05.2015, 12:00:44 via Website

Danke erstmal für soweit.
Ich verstehe es leider immer noch nicht.
Wie verarbeite ich den Click denn?
Und wie mache ich ein get der Position? Bin leider noch Anfängerin und manches sagt mir noch so gar nichts.

Danke für Deine Mühe.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.293

29.05.2015, 13:18:00 via App

Also der Code im clickListener wid beim click ausgeführt. Jetzt musst du wissen welches Item gedrückt wurde. Das Passiert über die Position also pos 0 ist dss 1. demensprechend pos 1 das zweite und so weiter. Nun stellt sich die Frage was du beim click machen willst.
Wenn du einfach nur die Daten haben willst dann kannst du auch so machen.

Note n = Note.getNoten().get(position);

In der Variable n stehen dann die entsprechenden Daten für das geklickte Item drin.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
ute neff
  • Forum-Beiträge: 12

30.05.2015, 13:46:05 via Website

Hallo Pascal,

ich danke Dir für die Hilfe.

LG

Antworten