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: `

  • Crear barra de búsqueda persistente en android
  • ¿Qué es orderInCategory en el elemento de menú ActionBar y por qué se utiliza para ..?
  • LoginButton.registerCallback no puede resolver el método
  • Libgdx - cómo agregar la imagen de fondo en la etapa?
  • Desactivación de la animación en ViewPager
  • Cómo obtener el evento onClickListener () en la barra de acciones personalizada
  • <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 detectar si un dispositivo móvil es emulado por Google Chrome?
  • La orientación del grabador de vídeo JavaCV no es adecuada en modo retrato
  • Vaciar InfoWindow cuando se hace clic en Marcador
  • Pantalla de captura de GLSurfaceView a mapa de bits
  • La llamada requiere permisos que pueden ser rechazados por el usuario.
  • ¿Cómo dar notificaciones sobre android en tiempo específico?
  • 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.