Hinzufügen Unterpunkt zu einem listview in Android
Momentan habe ich eine listview enthält ein paar von strings. Diese sind aufgerufen, aus einem string-array in strings.xml
<string name="app_name">Taxi Me</string>
<string-array name="taxi_array">
<item>Barrys Taxi</item>
<item>Boom Taxi</item>
</string-array>
War das, was ich versuche zu tun ist, erstellen Sie Unterpunkte für diese, so dass ich zeigen kann, Felder wie Adresse und Kontaktdaten. Ich machte eine customlistview eine Weile zurück, aber kann nicht herausfinden, wie ich es machen kann, mit dem strings.xml Datei? Gibt es bestimmte tags, die ich brauche zu bedienen, so dass Sie zeigen, bis in der Liste anzuzeigen?
Haupttätigkeit-Code:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] taxi = getResources().getStringArray(R.array.taxi_array);
final String[] address = getResources().getStringArray(R.array.taxi_add);
setListAdapter(new ArrayAdapter<String>(this, R.layout.listtaxi, taxi));
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
for (int i = 0; i < taxi.length; i++) {
lv.add(new ListTaxi (taxi[i], address[i]));
}
/*lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_LONG).show();
}
});
*/
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, final int position, long id)
{
final int selectedPosition = position;
AlertDialog.Builder adb=new AlertDialog.Builder(ListTaxi.this);
adb.setTitle("Taxi Booking");
adb.setMessage("You Have Selected: "+lv.getItemAtPosition(position));
adb.setPositiveButton("Book", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), Booking.class);
intent.putExtra("booking", taxi[selectedPosition]);
startActivity(intent);
}
});
adb.setNegativeButton("Cancel", null);
adb.show();
}
});
Ich verstehe nicht, was Sie zu tun versuchen. Können Sie erklären, die erwartete Ausgabe?
Unten ist ein pic, was ich versuche zu erreichen, google.co.uk/imgres?imgurl=http://4.bp.blogspot.com/...
siehe stackoverflow.com/questions/7916834/...
Unten ist ein pic, was ich versuche zu erreichen, google.co.uk/imgres?imgurl=http://4.bp.blogspot.com/...
siehe stackoverflow.com/questions/7916834/...
InformationsquelleAutor Oli | 2011-01-03
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
EDIT: Okay, nur zum Spaß, ich warf diese zusammen. Es kompiliert wird und korrekt funktioniert, sehen Sie, wenn Sie anpassen können für Ihre spezifischen Bedürfnisse:
layout/taxi_list_item.xml
layout/main.xml
TaxiMain.java
____EDIT_ _END______
Würden Sie wahrscheinlich besser dran mit einer Datenbank für so etwas, zu halten, die Datensätze miteinander verknüpft. Wenn Sie sind auf arrays verwenden, eine Sache, die Sie tun können, ist eine separate Arrays für jedes Element, das Sie brauchen (z.B. taxi_array, taxi_address_array, taxi_phone_array) dann machen Sie ein Taxi-Objekt in Ihrem code:
(Dies ist nicht kompilierter code, einige tweaks benötigt werden könnten), Aber dann haben Sie eine Liste von Taxi-Elemente, die alle von der kompilierten Informationen aus den verschiedenen arrays. Eine Datenbank wäre noch eine viel bessere Möglichkeit (oder auch eine CSV-Datei mit den Daten, die in Ihrem Vermögen).
Es wäre einfacher, meiner Meinung nach, denn man konnte das gesamte "Datenbank" in Excel (oder OO Calc). Sie im Grunde richten Sie einfach die Tabelle und exportieren Sie Sie in CSV (Komma-getrennte Werte). Dies ist natürlich vorausgesetzt, dass Ihr Inhalt enthält keine Kommas. Da haben Sie ein Feld "Adresse", müssen Sie wahrscheinlich ein Komma, in dem Fall könnten Sie so etwas wie eine pipe (|) als Begrenzer. Ich glaube nicht, dass Excel können Sie wählen Sie Ihre Trennzeichen, aber...aber Sie können immer mit tab-Trennzeichen und dann eine finden, > ersetzen Sie die Registerkarten mit Rohren. Dann...
würden Sie müssen nur Lesen Sie in der Datei aus dem Asset-Ordner, und dann verarbeiten Sie manuell (Lesen Sie, bis Sie ein Rohr erreichen, verwerfen Sie das Rohr, Lesen Sie den nächsten Artikel, etc.). Also Nein, wahrscheinlich nicht EINFACHER als diese Methode, haha, aber weniger anfällig für versehentliche Fehler (verschiedene arrays in unterschiedlicher Reihenfolge, oder so ähnlich).
Hi. ive, das es gehen kann aber nicht herausfinden, was es ist. ive Hinzugefügt, mein code für die Klasse, um zu sehen, wenn u sehen können, was im tun falsch. ich glaube nicht, ich brauchte, um zu erklären, die strings in den code, wie Sie bereits in der strings.xml Datei?
ach btw es gibt einen Fehler in Zeile: for (int i = 0; i < taxi.length; i++) { lv.add(new ListTaxi (taxi[i], Adresse[i])); } Cheers
InformationsquelleAutor kcoppock
Ich hatte dasselbe problem, und ich löste mich, wie diese:
Sie können fügen Sie einfach den Punkt wie dieser code, und Sie brauchen nicht so viel Programmieren!!
InformationsquelleAutor Arash Alizadeh
Sind Sie auf der Suche nach irgendeiner Art von geschachtelten Listen?
Haben Sie einen Blick auf ExpandableListView:
http://developer.android.com/reference/android/widget/ExpandableListView.html
und
http://mylifewithandroid.blogspot.com/2008/05/expandable-lists.html
Ahh, okay - wenn Sie immer noch Schwierigkeiten haben, überprüfen Sie heraus androidza.co.za/arbeiten-mit-listview-Teil-1
InformationsquelleAutor jcuenod