ArrayAdapter<DummyContent.DummyItem> con android.R.layout.simple_list_item_activated_2
-
27-12-2019 - |
Pregunta
Actualmente estoy usando el flujo maestro/detalle en mi proyecto de aplicación de Android.Ahora me gustaría no solo crear una lista con elementos con una sola cadena.Me gustaría cambiar la clase DummyItem estándar a lo siguiente:
/**
* A dummy item representing a piece of content.
*/
public static class DummyItem {
public String id;
public String content;
public String subtext; //Added subtext variable here
public DummyItem(String id, String content, String subtext) {
this.id = id;
this.content = content;
this.subtext = subtext; //And here
}
@Override
public String toString() {
return content;
}
}
En la clase ItemListFragment tengo esta línea de código predefinida para crear el adaptador para la lista:
setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
DummyContent.ITEMS));
Pero me gustaría cambiar el android.R.layout.simple_list_item_activated_1
a android.R.layout.simple_list_item_activated_2
mientras tengo android.R.id.text1
como contenido y android.R.id.text2
como mi subtext
-variable.
¿Existe la posibilidad de hacer esto?
Solución
Sobrescriba el método getView() de ArrayAdapter.Debería ser algo como esto:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//super call to create / recycle the view
View view = super.getView(position, convertView, parent);
TextView textView1 = (TextView) view.findViewById(android.R.id.text1);
textView1.setText(getItem(position).getContent());
TextView textView2 = (TextView) view.findViewById(android.R.id.text2);
textView2.setText(getItem(position).getSubtext());
return view;
}
Aquí hay más lecturas sobre ListViews, incluidos ejemplos:http://www.vogella.com/tutorials/AndroidListView/article.html