Cómo usar la vista de lista en Android
Cree una clase MyListViewAdapter que herede BaseAdapter e implemente su método abstracto
Instrucciones
En la siguiente explicación, solo se crea una clase de adaptador personalizado. cómo usarlo ListView para controles de uso común en Android
1. Crear la clase MyListViewAdapter
Crear la clase MyListViewAdapter, que hereda BaseAdapter e implementa su método abstracto:
1
2
3
4
int getCount();
Objeto getItem(int posición) );
long getItemId(int position);
View getView(int position, View convertView, ViewGroup parent);
getCount necesita devolver cuántos elementos también hay Es decir, es mejor mostrar tantas filas en la vista de lista
getItem necesita devolver los datos de la posición del parámetro position
getItemId simplemente devuelve la posición
2. Dar la clase MyListViewAdapter Agregar variables miembro y métodos de construcción
Dos variables miembro
1
2
Listlt; Stringgt; list;
Contexto de contexto;
la lista representa los datos que se mostrarán y la variable de contexto debe usarse al generar objetos de vista
Método de construcción: El método de construcción consiste en asignar valores a dos variables miembro
1
2
3
4
public MyListViewAdapter(Listlt; Stringgt; lista, contexto contexto) {
this.list = lista
this.context = contexto
}
3. Dar getCount, getItem, agregar código al método getItemId
getCount necesita devolver cuántos elementos hay, lo que significa que habrá tantas filas. se muestra en la vista de lista, por lo que return list.size
getItem necesita devolver la posición del parámetro Los datos, es decir, el valor del elemento de posición en la lista list.get(position)
.getItemId simplemente devuelve la posición
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@ Override
public int getCount() {
lista de retorno .size();
}
@Override
Objeto público getItem(int posición) {
return lis
t.get(posición);
}
@Override
public long getItemId(int posición) {
posición de retorno;
}
4. Agregue código al método getView
El método getView devuelve el objeto Ver cuya posición es la posición. El segundo parámetro convertView tiene en cuenta el recurso. Problema de reutilización. Durante el proceso de deslizamiento hacia arriba y hacia abajo, el método getView se llamará solo cuando sea necesario mostrar un elemento. Si un elemento está oculto y no se muestra, la Vista de la fila que no se muestra se pasará como. el parámetro convertView. Si no hay ningún elemento oculto, el valor de convertView es nulo. Puede ver qué fila está oculta a través de la salida en if(convertView!=null) en el código siguiente.
1
2
3
4
5
6 p> p>
7
8
9
10
11
12 p>
13
14
15
16
17
18
19
20
21
22
23
@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("Llame al método getView y muestre position=" position "item");
if (convertView!=null){
TextView t = (TextView) convertView.findViewById(R.id.firstTextView);
System.out.println(t.getText ()) ;
}else{
LayoutInflater diseñoInflador = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = diseñoInflador.inflate(R); .layout.item_mylistviewadapter, null);
}
TextView t = (TextView)(convertView.findViewById(R.id.firstTextView)); .setText( list.get(position));
if(position2==0)
{
t.setBackgroundColor(Color.WHITE);
}
else{
t.setBackgroundColor(Color.GRAY);
}
return convertView;
}
Suplemento: Generar objeto View a través de xml
Generar un objeto LayoutInflater a través del objeto Context
Llamar al método inflate del objeto LayoutInflate para generar un objeto de control. El primer parámetro del método inflate es el archivo xml y el segundo parámetro generalmente es nulo. El valor de retorno es el objeto de etiqueta más externo del archivo xml.
1
2
LayoutInflater layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE
LinearLayout convertView =(LinearLayout); )layoutInflater.inflate(R.layout.item_mylistvie
Descarga del código fuente
pan.baidu.com/s/1ntuQDdv