ListView / ListAdapter mit 2 strings in Android Projekt
Arbeite ich an Android-Projekt. Ich tutorial von http://www.vogella.com/articles/AndroidSQLite/article.html aber ich blieb auf etwas. Tutorial zeigt, wie Klasse mit 1 String-Objekt. Ich arbeite mit 2 String-Objekte. Also änderte ich einige Dinge (hinzufügen neuer String in meine Klasse, layout ändern.simple_list_item_1 zu android.R.layout.simple_list_item_2 etc.) Und nun die Frage - wie um etwas zu Holen Stoliki class-Objekte (override toString() gibt mir nur 1 Punkt, so ist Es nutzlos).
Klasse Stoliki
public class Stoliki {
private long id;
private String numer;
private String opis;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNumer() {
return numer;
}
public void setNumer(String numer) {
this.numer = numer;
}
public String getOpis() {
return opis;
}
public void setOpis(String opis) {
this.opis = opis;
}
}
Aktivität
import android.app.ListActivity;
import android.os.Bundle;
import java.util.List;
import java.util.Random;
import android.view.View;
import android.widget.ArrayAdapter;
public class FirstGridPage extends ListActivity {
private StolikiDataSource datasource;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_list_stoliki);
datasource = new StolikiDataSource(this);
datasource.open();
List<Stoliki> values = datasource.getAllStoliki();
//Use the SimpleCursorAdapter to show the
//elements in a ListView
ArrayAdapter<Stoliki> adapter = new ArrayAdapter<Stoliki>(this,
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
//Will be called via the onClick attribute
//of the buttons in main.xml
public void onClick(View view) {
@SuppressWarnings("unchecked")
ArrayAdapter<Stoliki> adapter = (ArrayAdapter<Stoliki>) getListAdapter();
Stoliki stolik = null;
switch (view.getId()) {
case R.id.add:
String[] stoliki_numer = new String[] { "1", "2", "3" };
String[] stoliki_opis = new String[] { "Czerwony", "Niebieski", "Zielony" };
int nextInt = new Random().nextInt(3);
//Save the new comment to the database
stolik = datasource.createStolik(stoliki_numer[nextInt], stoliki_opis[nextInt]);
adapter.add(stolik);
break;
case R.id.delete:
if (getListAdapter().getCount() > 0) {
stolik = (Stoliki) getListAdapter().getItem(0);
datasource.deleteStolik(stolik);
adapter.remove(stolik);
}
break;
}
adapter.notifyDataSetChanged();
}
@Override
protected void onResume() {
datasource.open();
super.onResume();
}
@Override
protected void onPause() {
datasource.close();
super.onPause();
}
}
- verwenden Sie eine benutzerdefinierte Liste-adapter
- Nur ein Hinweis: die Verwendung von Englisch Variablennamen, immer. Es ist wirklich hässlich "setOpis" und selbst wenn es nur training-app, verwenden Sie englische Namen zu trainieren und zu gewöhnen.
- Ja. Es ist hässlich, aber nur für uns (polnische Volkspartei). Auf jeden Fall bin ich immer noch Java zu lernen und es übersichtlicher für mich zu Lesen, code.
InformationsquelleAutor boski | 2013-04-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
http://www.youtube.com/watch?v=wDBM6wVEO70. Listview-Vortrag von Romain guy( android-Entwickler bei google).
Main.xml
Customw Zeile. row.xml
Benutzerdefinierte Liste-adapter. Aufblasen benutzerdefiniertes layout für jede Zeile.
Edit:
Ihre Tätigkeit eine listview. Diese im oncreate setContentView(R. layout.activity_main);. Die Haupt-layout eine listview. Setzen Sie den adapter der listview as listview.setAdapter(youradapter);
Dann listview benutzerdefinierte layout ie row.xml aufgeblasen für jede Zeile Element. Sie eigene adapter für das listview-Steuerelement ist, wo die row.xml aufgeblasen wird. Sie definiert Ihre Klasse CustomAdapter die extends ArrayAdapter. Überschreiben Sie eine Reihe von Methoden.
Werden kann, müssen Sie einen viewholder für smooth-scrolling und Leistung. Stellen Sie sich 1000 Zeilen ist lstview mit Bildern kann es zu memory-Ausnahmen. Ein Weg, um loszuwerden, diese ist die Verwertung von Ansichten. Die sichtbaren Ansichten(Zeilen) werden nicht recycelt. Das video in dem link oben hat eine detaillierte Erklärung über das Thema
activity_main.xml
row.xml (layout aufgeblasen für jedes listview-Zeile)
MainActivity