Android TextView id con una variable?

¿En mi aplicación de Android, hay una manera que puedo fijar el texto a un textview usando una variable como parte del id?

Estoy tratando de hacer algo como esto:

for (int i = 1; i < 6; i++){ views.setTextViewText(R.id.textView+i, "" + realtimeData.get(i).id); } 

Tengo los TextViews declarados en la disposición xml como textView1, textView2, etc … y pueden tener acceso a ellos con el nombre estático. Mi problema es que no sé cuántos objetos estarán en mi lista. No quiero mostrar más de 5, pero si hay menos de 5 su ok para que el valor de TextView se deje en blanco.

Está buscando el método getIdentifier() :

 for (int i = 1; i < 6; i++){ views.setTextViewText(getResources().getIdentifier("textView" + i, "id", getPackageName()), "" + realtimeData.get(i).id); } 

+1 a Luksprog, Sin embargo, siento que "i <6" no es el camino correcto, en lugar de usar ViewGroup.getChildCount() and ViewGroup.getChildAt(int) para que pueda controlar mejor su cantidad de textviews.

Menos problemas

El uso de getIdentifier() me estaba causando dolor, así que terminé con lo siguiente:

 String idName = "companyName"; // The id name of your resource. int resourceId = R.id.class.getField(idName).getInt(null); 

Siempre que mantenga un control del muslo sobre su archivo R para asegurarse de que sus ID sean consecutivos, podría probar algo como:

 for (int i = R.id.firstTextView; i <= R.id.lastTextView; i++){ views.setTextViewText(i, "" + realtimeData.get(i).id); } 

lo que permitiría agregar IDs al archivo R sin tener que modificar su código para cambiar el número codificado.

Sólo para probar mi punto:

 <TextView android:id="@+id/testStart" /> <TextView android:id="@+id/test2" /> <TextView android:id="@+id/test3" /> <TextView android:id="@+id/testEnd" /> <Button android:id="@+id/button1" /> 

genera:

  public static final int button1=0x7f070004; public static final int menu_settings=0x7f070005; public static final int test2=0x7f070001; public static final int test3=0x7f070002; public static final int testEnd=0x7f070003; public static final int testStart=0x7f070000; 

Añadiendo en una etapa posterior:

  <TextView android:id="@+id/test4" /> 

justo antes de

  <TextView android:id="@+id/testEnd" /> 

cambia inmediatamente R.java a:

  public static final int button1=0x7f070005; public static final int menu_settings=0x7f070006; public static final int test2=0x7f070001; public static final int test3=0x7f070002; public static final int test4=0x7f070003; public static final int testEnd=0x7f070004; public static final int testStart=0x7f070000; 
  • Alineación de ImageSpan en TextView
  • TextView.setTextSize se comporta anormalmente - Cómo establecer el tamaño de texto de textview dinámicamente para diferentes pantallas
  • Android: Crear TextView que parpadea cuando se hace clic
  • Cómo configurar mulitple clic evento para la única textview?
  • Configuración de un ancho de TextView en java
  • Cómo cambiar el tamaño del texto en lugares autocompletefragment en android?
  • Escala textSize en un TextView
  • Spannable Vs Tipo Vs Html
  • Tener una vista en torno a otra vista
  • Ocultar TextView después de algún tiempo en Android
  • Obtención de la altura de la vista de texto antes de la representación en el diseño
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.