Ich bin neu in Android und habe eine einfache Frage. Derzeit arbeite ich an einer Produktanwendung, die es Benutzern ermöglicht, eine Vielzahl von Produkten hinzuzufügen, zu entfernen und zu durchsuchen. Die Anwendung verwendet eine vordefinierte XML-basierte Layoutdatei als Vorlage, die den gesamten Bildschirm ausfüllt, um die aktuellen Produktdetails anzuzeigen. Wenn der Benutzer ein neues Produkt hinzufügt, möchte ich die gleiche Layoutdatei erneut verwenden, sie aber mit den Informationen des neuen Produkts füllen. Außerdem möchte ich die zuvor hinzugefügten Produkte (z. B. eine ArrayList) behalten, und der Benutzer kann diese Liste durchsuchen, indem er horizontal gleitet (von links nach rechts oder von rechts nach links). Nun, was ist das Beste, was man verwenden kann, um jedes Produkt darzustellen (Ansicht, Unteransicht, ... usw.), und wie man dieselbe XML-basierte Layoutdatei wiederverwenden kann, um die Details der verschiedenen Produkte anzuzeigen. Bitte entschuldigen Sie mein Englisch und bedanken Sie sich im Voraus für die HilfeWiederverwendung einer XML-Layout-Datei, um andere Informationen anzuzeigen (Android-Anwendung)
Antwort
Sie können eine neue Klasse erstellen, die den ArrayAdapter erweitert und dann die getView() - Methode überschreiben, um Ihr benutzerdefiniertes Layout aufzublasen. getView() gibt die Ansicht für eine einzelne Zeile zurück. Auf diese Weise können Sie Ihr Layout wiederverwenden. So wird es in etwa so aussehen:
public class ProductAdapter extends ArrayAdapter<Product> {
private LayoutInflater li;
public ProductAdapter(Context context, List<Product> products) {
super(context, 0, products);
li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the product of the position
Product product = getItem(position);
View v = convertView;
if (v == null) {
// Your custom layout file for a single row in the list.
v = li.inflate(R.layout.product_row, null);
}
// Populate your view here. Use v.findViewById().
return v;
}
}
Um die Liste in einer ListActivity Verwendung zu zeigen:
// The variable products is your initial list of products.
ProductAdapter adapter = new ProductAdapter(this, products);
setListAdapter(adapter);
Wenn Sie ein Produkt hinzufügen Sie diese zu Ihrem ArrayAdapter durch den Aufruf entweder die adapter.add hinzufügen () (wenn Sie Ihr Produkt am Ende der Liste hinzufügen möchten) oder einfügen() (um anzugeben, wo in der Liste der Produkte, die Sie das neue Produkt einfügen möchten) Methode auf dem ProductAdapter. Anschließend können Sie adapter.notifyDataSetChanged() aufrufen, um Ihren Adapter zu benachrichtigen, dass sich die Daten geändert haben und die Liste aktualisiert werden muss.
- 1. Gibt es andere Möglichkeiten, Informationen anzuzeigen?
- 2. Callbacks DownloadStringAsync ist abgeschlossen, um Informationen anzuzeigen
- 3. Suchergebnisformular um eine andere Seite anzuzeigen
- 4. Wiederverwendung einer LINQ-Abfrage
- 5. Wie erhalten Sie Glassfish, um Debug-Informationen für JSPs anzuzeigen?
- 6. Get `df` um aktualisierte Informationen auf FreeBSD anzuzeigen
- 7. Popup-Box, um Informationen nach der li anzuzeigen
- 8. Formular speichern, um es nach einer Umleitung auf andere Seite anzuzeigen
- 9. ASP.NET - Wie Serverstatistiken/Informationen anzuzeigen?
- 10. Wiederverwendung einer Funktion jquery?
- 11. Wiederverwendung der gleichen Tests für andere Implementierung
- 12. Redirecting, um Dateien anzuzeigen
- 13. Wiederverwendung von Geschäftslogik in einer Testklasse, um Zeit zu sparen
- 14. Ändern einer Klasse, um spezifische Ausgabe anzuzeigen
- 15. ListView, um Nachrichten anzuzeigen?
- 16. Einfache Wiederverwendung einer Methode, um weniger Codefehler zu verwenden
- 17. Verwendung von Intent in einer Android-Anwendung, um eine andere Aktivität anzuzeigen
- 18. Wie Informationen von einer Ajax Anfrage in eine andere
- 19. Android Service mögliche Wiederverwendung?
- 20. Wiederverwendung einer Variablen in jquery.ajax
- 21. Wiederverwendung einer PreparedStatement zwischen Methoden?
- 22. R data.table: Wiederverwendung einer Aggregation
- 23. Verschieben von Informationen aus einer CSV-Datei in eine andere
- 24. Datumsauswahl hinzufügen, um programmgesteuert anzuzeigen?
- 25. Was ist der beste Weg, um eine große Menge verschiedener Informationen in Android anzuzeigen?
- 26. Was ist die bevorzugte Methode, um lokale "wo kaufen" Informationen, IP-Adresse oder physikalische Adresse anzuzeigen?
- 27. Wie erhalte ich FullCalendar, um Informationen aus meinem JSON-Feed anzuzeigen?
- 28. Verwenden Sie PHP, um Icecast2 Statistiken anzuzeigen
- 29. Lang drücken, um Bilder anzuzeigen
- 30. Gibt es eine Möglichkeit, Informationen aller clusterItems anzuzeigen (ohne Klick)?
Wenn Sie ein gemeinsames Layout haben, dann welches Problem haben Sie mit, um ein gemeinsames Layout in allen anderen Layout einfügen –