android.content.res.Resources $ NotFoundException: String-Ressourcen-ID # 0x0

Ich entwickle eine Android-App, die Daten aus der MySQL-database liest, und ich sah diesen Fehler. Ich habe dieses XML-Layout:

      

Und das ist meine Java-Datei:

 public ApplicationAdapter(Context context, List 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; } } 

Wenn diese Aktivität aufgerufen wird, erhalte ich folgende Fehlermeldung:

 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 

Ich weiß nicht, wie ich diesen Fehler beheben kann.

   

Veränderung

 dateTime.setText(app.getTotalDl()); 

Zu

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

Es gibt verschiedene Versionen von setText – einer nimmt einen String und einer nimmt eine int-Ressourcen-ID. Wenn Sie eine Ganzzahl übergeben, wird versucht, nach der entsprechenden Zeichenfolge-Ressourcen-ID zu suchen – die sie nicht finden kann, was Ihr Fehler ist.

Ich denke, dass app.getTotalDl() einen int zurückgibt. Sie müssen setText ausdrücklich setText , ihn auf den String-Wert dieses int zu setzen.

setText (int resid) im Vergleich zu setText (CharSequence Text)

Ersetzen

 dateTime.setText(app.getTotalDl()); 

Mit

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

Wenn Sie versuchen, Text in Edittext oder textview , sollten Sie nur das String-Format übergeben.

 dateTime.setText(app.getTotalDl()); 

zu

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

Der ausgewertete Wert für settext war ein Integer, also wurde eine Ressource angehängt, aber es wurde nicht gefunden. Sie wollten den Text so setzen, dass er String ist. Konvertieren Sie den Integer in String, indem Sie .toStringe oder String.valueOf(int) löse dein Problem!