Android.content.res.Resources $ NotFoundException: Cadena de recursos ID # 0x0

Estoy desarrollando una aplicación para Android que lee datos de la base de datos MySQL y me enfrenté a este error. Tengo este diseño XML:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/wardNumber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:text="Ward Number" android:textSize="22dp"/> <TextView android:id="@+id/dateTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/wardNumber" android:layout_alignParentRight="true" android:layout_marginRight="3dp" android:text="Date-Time" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/dateTime" android:layout_alignBottom="@+id/dateTime" android:layout_alignLeft="@+id/wardNumber" android:layout_marginLeft="3dp" android:text="Name" /> </RelativeLayout> 

Y este es el archivo de mi Java:

 public ApplicationAdapter(Context context, List<Application> items) { super(context, R.layout.app_custom_list, items); this.items = items; } @Override public int getCount() { return items.size(); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if(v == null) { LayoutInflater li = LayoutInflater.from(getContext()); v = li.inflate(R.layout.app_custom_list, null); } Application app = items.get(position); if(app != null) { // ImageView icon = (ImageView)v.findViewById(R.id.appIcon); TextView wardNumber = (TextView)v.findViewById(R.id.wardNumber); TextView name = (TextView)v.findViewById(R.id.name); // LinearLayout ratingCntr = (LinearLayout)v.findViewById(R.id.ratingCntr); TextView dateTime = (TextView)v.findViewById(R.id.dateTime); // if(icon != null) { // Resources res = getContext().getResources(); // String sIcon = "com.sj.jsondemo:drawable/" + app.getIcon(); // icon.setImageDrawable(res.getDrawable(res.getIdentifier(sIcon, null, null))); // } if(wardNumber != null) wardNumber.setText(app.getTitle()); if(name != null) name.setText(app.getTitle()); if(dateTime != null) { dateTime.setText(app.getTotalDl()); // NumberFormat nf = NumberFormat.getNumberInstance(); // dateTime.setText(nf.format(app.getTotalDl())+" dl"); } } return v; } } 

Cuando se llama a esta actividad, recibo este mensaje de error:

 11-24 21:12:03.633: E/AndroidRuntime(1251): FATAL EXCEPTION: main 11-24 21:12:03.633: E/AndroidRuntime(1251): android.content.res.Resources$NotFoundException: String resource ID #0x0 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.content.res.Resources.getText(Resources.java:201) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.TextView.setText(TextView.java:2863) 11-24 21:12:03.633: E/AndroidRuntime(1251): at com.sj.jsondemo.Appl icationAdapter.getView(ApplicationAdapter.java:53) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.onMeasure(ListView.java:1127) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Handler.dispatchMessage(Handler.java:99) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Looper.loop(Looper.java:130) 11-24 21:12:03.633: E/AndroidRuntime(1251): at android.app.ActivityThread.main(ActivityThread.java:3683) 11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invokeNative(Native Method) 11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invoke(Method.java:507) 11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 11-24 21:12:03.633: E/AndroidRuntime(1251): at dalvik.system.NativeStart.main(Native Method) 11-24 21:12:08.922: I/Process(1251): Sending signal. PID: 1251 SIG: 9 

No sé cómo solucionar este error.

Cambio

 dateTime.setText(app.getTotalDl()); 

A

 dateTime.setText(String.valueOf(app.getTotalDl())); 

Hay diferentes versiones de setText : se toma una cadena y se toma una ID de recurso int. Si se pasa un número entero, intentará buscar el id de recurso de cadena correspondiente, que no puede encontrar, que es su error.

Supongo que app.getTotalDl() devuelve un int. Es necesario especificar específicamente setText para establecerlo en el valor String de este int.

SetText (int resid) vs setText (texto CharSequence)

Reemplazar

 dateTime.setText(app.getTotalDl()); 

Con

 dateTime.setText(""+app.getTotalDl()); 

Cuando intenta establecer texto en Edittext o textview debe pasar sólo formato de cadena.

 dateTime.setText(app.getTotalDl()); 

a

 dateTime.setText(String.valueOf(app.getTotalDl())); 
  • Android: ¿Cómo url de la tienda en el archivo de recursos string.xml?
  • ¿Puedo dar un ID a un elemento en String-array?
  • Símbolo de porcentaje en strings.xml
  • Mostrar el cambio de método de notificación en android?
  • Múltiples animaciones en 1 imageview android
  • Eliminar icono / logotipo de la barra de acción de android
  • Creación de líneas punteadas horizontales y verticales en android
  • Android - No se puede resolver el símbolo "R"
  • XML vinculante herramientas para Android
  • Adjuntar TextView a RecyclerView
  • Submenú del menú del cajón de navegación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.