Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Anulación de Android ArrayAdapter

Quiero hacer una cosa muy simple. Tengo un listview en mi aplicación a la que dinámicamente añadir texto. Pero, después de un cierto punto, quisiera cambiar el color del texto dentro del listview. Así, hice un XML que define mi artículo de la lista de encargo, y subclassed el ArrayAdapter. Pero, cada vez que llamo el método add () en mi ArrayAdapter personalizado, un elemento se agrega al listview, pero el texto no se coloca en él.

Aquí está mi XML: `

<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_content" android:textSize="8pt" android:gravity="center" android:layout_margin="4dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#FF00FF00"/> 

Y mi subclase ArrayAdapter:

 private class customAdapter extends ArrayAdapter<String> { public View v; public customAdapter(Context context){ super(context, R.layout.gamelistitem); } @Override public View getView(int pos, View convertView, ViewGroup parent){ this.v = convertView; if(v==null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v=vi.inflate(R.layout.gamelistitem, null); } if(timeLeft!=0) { TextView tv = (TextView)v.findViewById(R.id.list_content); //tv.setText(str[pos]); tv.setTextColor(Color.GREEN); } else { TextView tv = (TextView)v.findViewById(R.id.list_content); //tv.setText(str[pos]); tv.setTextColor(Color.RED); } return v; } } 

Estoy seguro de que estoy haciendo algo horriblemente mal, pero todavía soy un poco nuevo para Android.

¡Gracias! “

  • Cómo mantener la posición de desplazamiento de listview cuando se actualiza
  • Mejor utilizar el adaptador Cursor o el adaptador Array
  • ArrayAdapter en android para crear listview simple
  • Android Cómo reciclar el mapa de bits correctamente cuando se utiliza RecyclerView?
  • Android ListView resalta el elemento mediante programación
  • DrawerLayout ListView no dibujado con GLSurfaceVer como contenido
  • BaseAdapter.notifyDatasetChanged () no actualizar el ListView
  • Vista anidada de android
  • One Solution collect form web for “Anulación de Android ArrayAdapter”

    getView() establecer el texto en getView() . Obtener el valor a establecer con getItem(pos) , a continuación, establecerlo.

     public View getView(int pos, View convertView, ViewGroup parent){ this.v = convertView; if(v==null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v=vi.inflate(R.layout.gamelistitem, null); } // Moved this outside the if blocks, because we need it regardless // of the value of timeLeft. TextView tv = (TextView)v.findViewById(R.id.list_content); tv.setText(getItem(pos)); if(timeLeft!=0) { //TextView tv = (TextView)v.findViewById(R.id.list_content); //tv.setText(str[pos]); tv.setTextColor(Color.GREEN); } else { //TextView tv = (TextView)v.findViewById(R.id.list_content); //tv.setText(str[pos]); tv.setTextColor(Color.RED); } return v; } 

    Además, ¿existe alguna razón para almacenar v como una variable miembro, en lugar de sólo dentro de la función?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.