Android ClassCastException auf findViewById

Ich habe ein kleines Problem, wo ich den Fehler nicht finden kann, den ich mache, das ist wohl etwas ganz einfaches.

Ich habe das folgende 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:layout_marginLeft="10dp" > <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:focusable="false" /> <ImageView android:id="@+id/imgStarred" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/checkBox" android:layout_below="@+id/checkBox" android:layout_marginRight="4dp" android:src="@drawable/ic_star_gray"/> <CheckedTextView android:id="@+id/lblTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/checkBox" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" android:layout_toLeftOf="@+id/imgPriority" android:layout_toRightOf="@+id/checkBox" android:text="CheckedTextView" /> <TextView android:id="@+id/lblDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/lblTitle" android:layout_below="@+id/lblTitle" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/checkBox" android:text="Small Text" android:textAppearance="?android:attr/textAppearanceSmall" /> <ImageView android:id="@+id/imgPriority" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="8dp" android:layout_marginTop="8dp" android:src="@drawable/ic_priority_5" /> </RelativeLayout> 

Wenn ich versuche, einen Blick von ihm mit findViewById zu bekommen, bekomme ich eine ClassCast Exception

 11-23 10:12:07.680: E/AndroidRuntime(5965): FATAL EXCEPTION: main 11-23 10:12:07.680: E/AndroidRuntime(5965): java.lang.ClassCastException: android.widget.ImageView 11-23 10:12:07.680: E/AndroidRuntime(5965): at com.bilobait.taskbox.task.TaskBoxTaskList$TaskView.<init>(TaskBoxTaskList.java:459) 11-23 10:12:07.680: E/AndroidRuntime(5965): at com.bilobait.taskbox.task.TaskBoxTaskList$TaskBoxTaskAdapter.getView(TaskBoxTaskList.java:423) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.AbsListView.obtainView(AbsListView.java:1435) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.ListView.measureHeightOfChildren(ListView.java:1256) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.ListView.onMeasure(ListView.java:1167) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.View.measure(View.java:8313) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.view.ViewRoot.handleMessage(ViewRoot.java:1862) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.os.Handler.dispatchMessage(Handler.java:99) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.os.Looper.loop(Looper.java:123) 11-23 10:12:07.680: E/AndroidRuntime(5965): at android.app.ActivityThread.main(ActivityThread.java:3695) 11-23 10:12:07.680: E/AndroidRuntime(5965): at java.lang.reflect.Method.invokeNative(Native Method) 11-23 10:12:07.680: E/AndroidRuntime(5965): at java.lang.reflect.Method.invoke(Method.java:507) 11-23 10:12:07.680: E/AndroidRuntime(5965): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 11-23 10:12:07.680: E/AndroidRuntime(5965): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 11-23 10:12:07.680: E/AndroidRuntime(5965): at dalvik.system.NativeStart.main(Native Method) 

Kann mir jemand helfen / gib mir einen Hinweis, was mir fehlt?

Danke

EDIT: Vergaß etwas, wenn ich mitnehme

 android:layout_toLeftOf="@+id/imgPriority" 

Von CheckedTextView ist der Fehler weg.

 lblTitle = (TextView)findViewById(R.id.lblTitle); lblDescription = (TextView)findViewById(R.id.lblDescription); cbCheck = (CheckBox)findViewById(R.id.checkBox); imgStar = (ImageView)findViewById(R.id.imgStarred); imgPriority = (ImageView)findViewById(R.id.imgPriority); 

  • Entwerfen Sie benutzerdefinierte Android ViewGroup Unterklassen
  • Hintergrundbild für wrap_content
  • Layout wie Radialmenü
  • Wie man feste Fußzeile im Android-Layout erstellt?
  • Was ist der Unterschied zwischen addView und addViewInLayout
  • Wie zentriere ich ein GridView in seinem LinearLayout-Elternteil?
  • Speichern von Dimensionen in der XML-Datei in Android
  • Erstellen Sie View-Object aus XML-Datei in Android
  • 4 Solutions collect form web for “Android ClassCastException auf findViewById”

    Sorry, ich habe nicht bemerkt, bis zu meiner ersten Antwort, dass Sie ids in Ihren Referenzen viele Male erstellen. Du solltest das nicht tun :). Entfernen Sie alle "+" Zeichen in allen Referenzen wie layout_toLeftOf , layout_alignRight , layout_below und so weiter. Das wird so aussehen:

     <?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:layout_marginLeft="10dp" > <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:focusable="false" /> <ImageView android:id="@+id/imgStarred" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/checkBox" android:layout_below="@id/checkBox" android:layout_marginRight="4dp" android:src="@drawable/ic_star_gray"/> <CheckedTextView android:id="@+id/lblTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/checkBox" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" android:layout_toLeftOf="@id/imgPriority" android:layout_toRightOf="@id/checkBox" android:text="CheckedTextView" /> <TextView android:id="@+id/lblDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/lblTitle" android:layout_below="@id/lblTitle" android:layout_marginLeft="10dp" android:layout_toRightOf="@id/checkBox" android:text="Small Text" android:textAppearance="?android:attr/textAppearanceSmall" /> <ImageView android:id="@+id/imgPriority" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="8dp" android:layout_marginTop="8dp" android:src="@drawable/ic_priority_5" /> </RelativeLayout> 

    Wenn du z. B. android:layout_toLeftOf="@+id/imgPriority" mit Pluszeichen machst du eine andere imgPriority ID, und du verweist nicht bereits vorhandene ID deines ImageViews.

    Entfernen Sie " + " Zeichen aus Attribut android:layout_toLeftOf="@+id/imgPriority" in CheckedTextView Annotation und setzen Sie ImageView Annotation in Ihrem Layout xml, bevor seine ID verwendet wird

    definieren

     <ImageView android:id="@+id/imgPriority" ........... /> 

    Vor

     CheckedTextView . 

    In relativeLayout jede Ansicht im Zusammenhang mit anderen sollte nach dieser Ansicht definieren

    Überprüfen Sie in Ihrer Klassen-Datei, Sie müssen Objekt / Find-ID von verschiedenen Steuerelementen erstellt haben. Zum Beispiel, in meinem Fall, wenn in XML-Datei hatte ich Bildansicht und ich fand ID der Bild-Schaltfläche in Class-Datei, zu diesem Zeitpunkt war dieser Fehler aufgetreten.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.