2010-11-28 7 views
0

Ich bin ein Android-Anwendung, die eine Listview erstellt hat und wenn der Benutzer auf die Listview Element klickt, dann eine neue Aktivität gestartet wird. Ich möchte einige Daten an die neue Aktivität weitergeben. Ich habe zwei lokale Variablen Titel und Beschreibungen, die ich innerhalb dieser Methode verwenden möchte. Compiler gibt einen Fehler aus, der besagt, dass Beschreibungen ein endgültiger Typ sein sollten, der dort verwendet werden soll. Da das Array der Beschreibungen dynamisch erzeugt wird, kann ich es nicht endgültig machen.Android-ListView- Zugriff auf lokale Variablen in Onitemclick-Methode

Gibt es etwas, das ich vermisse oder gibt es eine andere Möglichkeit, damit zu arbeiten?

String[] titles = someClass.getTitles(); 
String[] descriptions = someClass.getDescriptions(); 

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, titles)); 
ListView lv = getListView(); 
lv.setTextFilterEnabled(true); 
lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
     Intent i = new Intent(TitleView.this, DetailView.class); 
     i.putExtra("title", ((TextView) view).getText()); 
     i.putExtra("description", descriptions[new Long(id).intValue()]); 
     startActivity(i); 
    } 
}); 

Dank

Antwort

1

Wenn Sie die descriptions als final, geben sie es dynamisch aufgebaut lässt sich nicht bedeuten tut. Es bedeutet, dass sobald descriptions geladen ist mit, was von someClass.getDescriptions(); zurückgegeben wird, kann es nicht erneut zugeordnet werden (und wenn dies der Fall ist, wird es einen Fehler bei der Kompilierung Zeit werfen).

+0

Danke für die Antwort .. Meine schlechte., Meine Methode war die leere Liste zurückgeben. – racharambola