Ich entwickle eine Android-App, die Daten aus der MySQL-Datenbank liest, und 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 soll.
Ersetzen
Mit
quelle
Wenn wir den Wert als erhalten
int
und auf setzen,String
tritt der Fehler auf. PFB meine Lösung,quelle
Wenn Sie zum Set Text versuchen
Edittext
odertextview
sollten Sie nur String - Format übergeben.zu
quelle
Der ausgewertete Wert für settext war eine Ganzzahl, daher wurde eine angehängte Ressource angezeigt, die jedoch nicht gefunden wurde. Sie wollten den Text so festlegen, dass er eine Zeichenfolge sein sollte. Konvertieren Sie also eine Ganzzahl durch Anhängen in eine Zeichenfolge
.toStringe
oderString.valueOf(int)
lösen Sie Ihr Problem!quelle
Du kannst es schaffen. Dies ist ein einfacher Weg.
quelle
Wenn Sie die Werte in int erhalten, müssen Sie dafür einen String verwenden, der den Fehler auslöst
Vor
nach dem
Sie können den Fehler beheben, indem Sie String.valueOf hinzufügen
quelle