Android ListView con 2 TextViews por artículo

Todos los ejemplos que he visto en la red contienen sólo 1 TextView por elemento y cargan datos de una matriz. No entiendo cómo puedo especificar qué datos van a donde. Por ejemplo mi disposición del artículo tiene este aspecto:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/receiver" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

¿Cómo puedo guardar datos en la matriz para que pueda ser utilizado en ListView con este diseño?

Supongo que no lo has visto muy bien. 🙂 Hay toneladas de ejemplos por ahí que muestran cómo hacerlo. Búsqueda de "Custom ListView Android" y obtendrá un buen puñado.

Uno de ellos está aquí. http://techdroid.kbeanie.com/2009/07/custom-listview-for-android.html

Aquí está el adaptador de lista personalizada:

 private class ListAdapter extends ArrayAdapter<RSSItem> { private List<Item> items; public ListAdapter(Context context, int textViewResourceId, List<Item> items) { super(context, textViewResourceId, items); this.items = items; } public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.list_item, null); } Item item = items.get(position); if (item != null) { TextView title = (TextView) v.findViewById(R.id.tvTitle); TextView description = (TextView) v.findViewById(R.id.tvDescription); if (title != null) { title.setText(item.getTitle()); } if (description != null) { description.setText(item.toString()); } } return v; } } 

esta es una clase de Elemento , la bruja tendrá sus datos:

 public class Item { private String title = null; private String description = null; RSSItem() { } public void setTitle(String title) { this.title = title; } public void setDescription(String description) { this.description = description; } public String getTitle() { return title; } public String getData() { return data; } } 

… y aquí es una clase con la que puede tomar todos los datos de la lista en algún tipo de matriz:

 public class ListData { private int itemcount = 0; private List<Item> itemlist; ListData () { itemlist = new Vector<Item>(); } int addItem(Item item) { itemlist.add(item); itemcount++; return itemcount; } Item getItem(int location) { return itemlist.get(location); } List<Item> getAllItems() { return itemlist; } int getItemCount() { return itemcount; } } 

En su clase principal ( Actividad ) usted debe llenar correctamente sus datos.

Con el adaptador se alimenta el listview con los datos. Y cuando se alimenta en el método getView (), agrega datos a estas TextViews. Hay miles de ejemplos en la red …

Aquí hay un ejemplo (Mejoras en este código se puede hacer, por supuesto)

  @Override public View getView(int position, View convertView, ViewGroup parent) throws NullPointerException { ViewHold viewHold; if (convertView == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(R.layout.temp2, null); viewHold = new ViewHold(); viewHold.go = (Button)convertView.findViewById(R.id.gotherefav); viewHold.remove = (Button)convertView.findViewById(R.id.removefav); convertView.setTag(viewHold); } else { viewHold=(ViewHold)convertView.getTag(); } String t = items.get(position); if (t != null) { TextView itemText = (TextView) convertView.findViewById(R.id.item); // here you add data from arrayLists TextView itemText2 = (TextView) convertView.findViewById(R.id.item2); itemText2.setText(t); itemText.setText(t); itemText.invalidate(); } viewHold.go.setVisibility(View.GONE); viewHold.remove.setVisibility(View.GONE); return convertView; } } 
  • Android - ListView filtrar el conteo
  • Android: Los elementos de ListView en ListFragment se superponen a sí mismos
  • Sincronizar todo el ListView en un ViewPager
  • Obtener elementos seleccionados de ListView con casilla de verificación
  • Android: AutoCompleteTextView margen superior en ListView
  • ¿Podemos controlar la posición final de un fling en un ListView
  • ListView hace que mi aplicación funcione muy lenta, aunque he creado Class Holder
  • Rellenar el color de la fila de vista de lista con un cierto porcentaje
  • ArrayAdapter de Android: agrega lista de cadenas en lugar de reemplazar
  • ListView con el primer elemento visible que tiene un diseño diferente
  • Lista de contactos con contacto La foto crea problemas de rendimiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.