it-swarm.com.de

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

Ich entwickle eine Android-App, die Daten aus der MySQL-Datenbank liest, und ich bin auf diesen Fehler gestoßen. Ich habe dieses XML-Layout:

<?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> 

Und das ist meine Java-Datei:

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;
}
}

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.

123
user2881604

Veränderung

dateTime.setText(app.getTotalDl());

Zu

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

Es gibt verschiedene Versionen von setText - eine nimmt einen String und eine eine int-Ressource-ID. Wenn Sie eine Ganzzahl übergeben, wird nach der entsprechenden Zeichenfolgenressourcen-ID gesucht, die nicht gefunden werden kann. Dies ist Ihr Fehler.

Ich denke, app.getTotalDl() liefert ein int zurück. Sie müssen setText ausdrücklich anweisen, den String-Wert dieses int festzulegen.

setText (int resid) vs setText (Text mit Zeichenfolge)

405
Ken Wolf

Ersetzen

dateTime.setText(app.getTotalDl());

Mit

dateTime.setText(""+app.getTotalDl());
10
Soni Kumar

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

dateTime.setText(app.getTotalDl());

zu

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

Der ausgewertete Wert für settext war eine Ganzzahl. Daher wurde eine Ressource angezeigt. Sie wurde jedoch nicht gefunden. Sie wollten den Text so festlegen, dass er eine Zeichenfolge sein sollte. Konvertieren Sie die Ganzzahl in eine Zeichenfolge, indem Sie .toStringe oder String.valueOf(int) anhängen, um Ihr Problem zu lösen!

0
blackHawk