Android: BaseAdapter no muestra elementos
La aplicación que estoy luchando para hacer tiene una lista simple y un botón presente en el fondo no importa qué. Mi problema es que mi BaseAdapter personalizado no muestra elementos. Sé que ya que mis elementos son sólo una cadena que podría utilizar un ArrayAdapter, pero la asignación lo requiere. El código:
class ListaOrase extends BaseAdapter{ private Activity context; ArrayList<String> orase; public ListaOrase(Activity context){ this.context=context; orase=new ArrayList<String>(); } public void add(String string){ orase.add(string); } public int getCount() { // TODO Auto-generated method stub return 0; } public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } public View getView (int position, View convertView, ViewGroup list) { View element; if (convertView == null) { LayoutInflater inflater = context.getLayoutInflater(); element = inflater.inflate(R.layout.lista, null); } else element = convertView; TextView elementLista=(TextView)element.findViewById(R.id.elementLista); elementLista.setText(orase.get(position)); return element; } } public class WeatherAppActivity extends ListActivity { Button buton; ListaOrase lista; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lista=new ListaOrase(this); buton=(Button)findViewById(R.id.buton); setListAdapter(lista); lista.add("Bucuresti"); lista.add("Sibiu"); } }
Mis archivos XML van así:
- Android columna '_id' no existe?
- Cómo implementar 2 tipos diferentes de seperators (es decir, encabezados) en una clase de adaptador ListView
- Android: Mostrar la imagen en la vista de imagen por SimpleAdapter
- Listview / ExpandableListVer imágenes de contenido cuando se llama notifyDataSetChanged
- Adición de animación a un ListView para expandir / contraer contenido
main.xml -- for the Activity <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@android:id/list" android:layout_alignParentTop="true"/> <RelativeLayout android:id="@+id/relative" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> <Button android:id="@+id/buton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="add" android:text="Add" android:layout_gravity="" /> </RelativeLayout> </RelativeLayout> lista.xml -- for the list <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/elementLista" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
El botón "abajo" abre un diálogo que añade elementos a mi lista. Obviamente no funciona, pero creo que es el BaseAdapter (ListaOrase) en sí mismo, ya que los intentos no lanzan excepciones. Estaría agradecido si los artículos que codifiqué encendido aparecerían (Bucuresti y Sibiu).
¿Qué estoy haciendo mal? ¡Muchas gracias! 🙂
- Cómo dibujar un encabezado de sección en android listview al igual que el UITableview del ios?
- (Android) listview con varios botones, no se puede hacer clic en el elemento de lista
- Problema al seleccionar el color del selector ListView cuando se pulsa
- Ninepatch escala incorrecta al desplazarse después de aplicar un filtro de color?
- Android: ¿Cómo puedo hacer una actualización ListView periódicamente?
- Animate listView childs sólo una vez que aparecen
- Android: ¿Cómo hacer un adaptador con IDs estables?
- ExpandableListView expandir sólo en un botón específico?
Su problema de código casi perfecto es devolver orase.size () en el método getcount (), está devolviendo 0, agregar métodos no implementados en la clase ListaOrase. Su ListaOrase debería ser así:
class ListaOrase extends BaseAdapter{ private Activity context; ArrayList<String> orase; public ListaOrase(Activity context){ this.context=context; orase=new ArrayList<String>(); } public void add(String string){ orase.add(string); } public View getView (int position, View convertView, ViewGroup list) { View element; if (convertView == null) { LayoutInflater inflater = context.getLayoutInflater(); element = inflater.inflate(R.layout.lista, null); } else element = convertView; TextView elementLista=(TextView)element.findViewById(R.id.elementLista); elementLista.setText(orase.get(position)); Log.e("",orase.get(position)); return element; } public int getCount() { // TODO Auto-generated method stub return orase.size(); } public Object getItem(int position) { // TODO Auto-generated method stub return null; } public long getItemId(int position) { // TODO Auto-generated method stub return 0; } }
espero que esto ayude
getCount
método getCount
realmente devolvía 0 de manera que getView()
no estaba siendo llamado. Cuando cambié a:
getcount() { return arrayObject.Size(); }