| |||||||
Das Thema "ListView - Daten anzeigen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 20.01.2012
Beiträge: 3
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| ich arbeite im moment an einer App. Leider komme ich jetzt an einer Stelle nicht weiter. Ich habe eine ListView, die mit Daten aus einer MySQL Datenbank gefüllt ist. Das Problem ist nun, dass ich nicht weiß wie ich abfrage welches Item in der ListView geklickt wurde. Außerdem möchte ich, dass nach einem Klick auf ein Item der ListView automatisch eine neue Activity angezeigt werden soll, in der nochmals Daten aus einer MySQL Datenbank angezeigt werden sollen. Sorry, ich bin noch ein Anfänger, aber ich hoffe jemand könnte mir helfen. |
| | |
| | #2 (permalink) |
| Neuer Benutzer Registriert seit: 20.01.2012
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Servus Sycube, du must einen ClickListener einbauen um diese Abfrage zu realisieren. Ich habe die hier mal eine TestAvtivity gebastelt welche das im groben Zeigt was du möchtest. Das übergeben der ID an die nächste Activity musst du natürlich noch implementieren, um die ID zu übergeben. Code: public class TestActivity extends Activity {
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
mListView = (ListView) findViewById(R.id.listView);
setListener();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
// Setzd den ClickListener und immer wenn ein ELement aus der Liste geklickt
// wird, wird onItemClick() aufgereufen
private void setListener() {
mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
// Deklariere und initialisiere ein Intent zum starten der
// Activity
Intent intent = new Intent(view.getContext(),
YourActivity.class); // <-- YourActivity.class musst du
// mit der Klasse deiner
// Activity ersetzen
intent.putExtra("id", value); // <-- Hier übergeben wir die ID
// des ausgewählten Elements an
// die aufzurufende Activity value
// musst du ersetzen mit der variable
// welche die id enthält
startActivity(intent); // <-- Startet die Activity
}
});
}
} Code: public class YourActivity extends Activity {
private int mId;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mId = getIntent().getIntExtra("id", -1); // <-- hier holen wir über den
// Schlüssel "id" den Wert
// und wenn nix übergeben
// wurde liefern wir den
// Wert -1 zurück
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
} Wie wir Wissen beginnt der Index eines Arrays bei 0, das trifft auch bei der ListView zu, wenn wir die Position des geklickten Elements abrufen. Geändert von storage (21.01.2012 um 11:40 Uhr) |
| | |
| | #4 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 24.10.2010
Beiträge: 57
Abgegebene Danke: 4
Erhielt 1 Danke für 1 Beitrag
|
Hallo, ich habe zwei Beobachtungen gemacht, die ich hier gerne erwähnen würde. Wenn man beim Adapter android.R.layout.simple_list_item_1 verwendet, dann ist das scrollen verbuggt (sieht nach einem refreshproblem aus/es flackert) und es ist nur der teil anklickbar, der so groß ist wie der string. Ich habe einige Stunden damit verbracht eine Lösung für das Problem zu finden. Man muss einfach android.R.layout.simple_list_item_2 verwenden! |
| | |
| | #5 (permalink) |
| Neuer Benutzer Registriert seit: 17.02.2012
Beiträge: 13
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo, ich habe mal ne etwas andere frage zu dem ListView. Annahme: wir haben eine list.xml datei. Dort über den 'grafical layout' fügen wir eine Listview ein. Hinzukommen zwei Buttons die nebeneinander unter der Listview sind. Ungefähr so sollte es dann aussehen. die listView enthält 4 einträge. was ich möchte ist, das wenn ich auf ein item klicke eine andere seite geöffnet wird. ABER: meine buttons sollen auch zu sehen sein, genau hier komme ich nicht weiter. ich habe die methode 'onListItemClick ' benutzt bzw. musste daher die 'setcontentView()' auskommentieren. wobei genau damit ja meine View die ich im grafical layout gemacht habe, angezeigt werden soll. da bin ich etwas verwirrt. ![]() der code hier drunter funzt nicht, aufgrund des 'setContentView)'. wenn ich es so starte komm ich gar nicht zur der listview, da es vorher zusammenbricht. wenn ich es auskommentiere, und einen listadapter implementiere dann, bekomme ich die liste, auf die ich dann auch klicken kann mit der jeweiligen action und so aber die buttons feheln mir dann. kann man das nicht irgendwie verknüpfen? Code: public class Liste extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.liste);
}
public void Back(View view) {
this.finish();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Intent i = new Intent(Liste.this, Game.class);
startActivity(i);
}
} |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Bilder in ListView eines Dialoges anzeigen | spike | Android App Entwicklung | 2 | 05.12.2011 11:03 |
| Wie Listview/Listactivity innerhalb eines anderen Activities anzeigen | ioantudor | Android App Entwicklung | 3 | 21.10.2011 15:05 |
| SQL-Daten in Listview mit Titel anzeigen | Gibbsnich | Android App Entwicklung | 0 | 07.07.2011 17:34 |
| Irgendetwas NEBEN ListView anzeigen | mdolphin | Android App Entwicklung | 2 | 30.11.2010 14:40 |
| ListView mit 2 Zeilen anzeigen aus xml | beginnerUser | Android App Entwicklung | 2 | 30.09.2010 21:31 |