setViewBinder Frage

  • Antworten:4
  • Bentwortet
Vor Nachname
  • Forum-Beiträge: 3

14.04.2012, 15:13:48 via Website

Hi,
folgender Code macht "Probleme" ?
1private void refresh_List_List()
2 {
3 cursor_list = db.getList();
4 listViewList_list = (ListView) findViewById(R.id.list_view_on_main);
5 listViewList_list.setOnItemClickListener(this);
6
7 String[] anzeigeSpalten = new String[]
8 { "Name" }; //
9 int[] anzeigeViews = new int[]
10 { R.id.main_list_data };
11 adapter = new SimpleCursorAdapter(this, R.layout.main_data, cursor_list,
12 anzeigeSpalten, anzeigeViews);
13
14 adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder()
15 {
16 public boolean setViewValue(View view, Cursor cursor, int columnIndex)
17 {
18
19 return false; // keine Änderung
20
21 }
22 });
23
24 listViewList_list.setAdapter(adapter);
25
26 }

cursor_list enthält genau 3 Einträge.
Das Array " anzeigeSpalten" enthält genau einen Eintrag.
Ich würde jetzt erwarten, das die Methode
1adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder()
2 {....

genau 3mal durchlaufen wird.
Wird aber 9 mal durchlaufen.
In eine Anderen View das selbe: pro Eintag 3 durchläufe.
Was mache ich falsch ? >_>

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

14.04.2012, 18:18:06 via Website

db.getList() wird Zeilen mit jeweils 3 Spalten liefern, daher wird setViewValue(View view, Cursor cursor, int columnIndex) insgesamt 9 mal aufgerufen.

Antworten
Vor Nachname
  • Forum-Beiträge: 3

14.04.2012, 20:53:29 via Website

and dev
db.getList() wird Zeilen mit jeweils 3 Spalten liefern.....
eben nicht...3 Zeilen mit einer Spalte..:(

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

15.04.2012, 00:11:20 via Website

Du definierst das Mapping nur für eine Spalte, darum geht es aber nicht.
Wie sieht db.getList() aus?
Wird da wirklich nur ein "select name from tabelle" gemacht?
Oder vielleicht doch ein "select * from tabelle"?

Antworten
Vor Nachname
  • Forum-Beiträge: 3

16.04.2012, 10:17:53 via Website

Der Cursor enthält noch "_id". Wären dann aber 6 und nicht 9 durchläufe.
Werde es erstmal als gegeben hin nehmen, trotzdem Danke :-)

Antworten