Red de conocimiento informático - Material del sitio web - Cómo usar la vista de lista en Android

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>

7

8

9

10

11

12

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