Listview aus 2. class befüllen

  • Antworten:2
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 7

07.12.2017, 14:26:20 via Website

Hallo zusammmen,

ich möchte ein Listview aus einer 2. class füllen. Wahrscheinlich hab ich ein Problem mit dem Arrayadapter und dem Kontext this.
Fehlermeldung: The constructor ArrayAdapter(Klasse, int, String[]) is undefined

MainActivity.java

    ListView lv;
    lv = (ListView) findViewById(R.id.list_view1);
    KLASSE = new Klasse();
    KLASSE.Listefüllen(lv);

Klasse.java

    private ListView listView;
    String[] Arr = {"123","456","789"};

    public void Listefüllen(ListView listView){
    this.listView = listView;
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, Arr);
        listView.setAdapter(adapter);   
    }

Mit einem TextView funktioniert es aber

    private TextView textView;
    String[] Arr = {"123","456","789"};
    public void TextViewfüllen(TextView textView){
        this.textView = textView;
        this.textView.setText(Arr[0]);

Habt ihr eine Idee?

Viele Grüße
Thomas

— geändert am 07.12.2017, 14:41:25

Antworten
Gelöschter Account
  • Forum-Beiträge: 79

23.12.2017, 12:27:41 via Website

Denke auch, dass es an deinem "this" liegt. Kenne mich damit auch nicht so aus, aber ich hatte mal ein ähnliches Problem, weil ich die MediaPlayer-Klasse, die beim erstellen auch einen Context benötigt, in einer meiner eigenen Klassen benutzt hatte.
Meine Lösung war dann, dass ich im Konstruktor meiner Klasse den Context meiner MainActivity übergeben habe und damit meinen MediaPlayer initialisiert habe.
Wäre dann bei dir so:

--- MainActivity.java ---

KLASSE = new Klasse(this);

--- Klasse.java ---

public Klasse(Context context) {
 this.mainThis = context)
}

ArrayAdapter adapter = new ArrayAdapter(mainThis, ...)

Antworten
  • Forum-Beiträge: 11.179

24.12.2017, 12:50:15 via Website

Entweder per Parameter so wie oben schon gesagt, oder mann zieht sich den Context wieder aus der ListView, denn jedes ViewElement bracuht diesen auch. z.b ListView#getContext();

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

Antworten