Hier ist mein Layout-DateiKlassenübergabe-Ausnahme in FrameLayout, wenn ich versuche, die Reihenfolge der Ansichten in Layout-XML zu ändern?
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3">
<WebView
android:id="@+id/document_id"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ProgressBar
android:id="@+id/load_document_progress"
android:layout_width="30dp"
android:layout_gravity="center"
android:layout_height="30dp"
android:visibility="invisible"/>
<Button
android:id="@+id/start_btn"
android:layout_width="90dp"
android:layout_height="30dp"
android:text="@string/start_btn_txt"
android:textStyle="bold"
android:textColor="#000000"
android:layout_gravity="center"
android:visibility="invisible"
android:onClick="updatePresentationId"
android:background="@drawable/border_radius"/>
</FrameLayout>
Dies funktioniert. Aber wenn ich die Reihenfolge der Elemente ändern muss. Ich werde ClassCastException bekommen. Hier ist mein Logcat-Trace.
12-24 18: 33: 58,131: E/Android Runtime (2089): fatal EXCEPTION: main 12-24 18: 33: 58,131: E/Android Runtime (2089): java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.zoho.showmote/com.zoho.showmote.android.activity.ShowDocuments}: java.lang.ClassCastException: android.widget.Button kann nicht in android.widget.ProgressBar 12 umgewandelt werden. 24 18: 33: 58,131: E/Android Runtime (2089): bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1956) 12-24 18: 33: 58,131: E/Android Runtime (2089): bei android.app.Activ ityThread.handleLaunchActivity (ActivityThread.java:1981) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.app.ActivityThread.access $ 600 (ActivityThread.java:123) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1147) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android. os.Handler.dispatchMessage (Handler.java:99) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.os.Looper.loop (Looper.java:137) 12-24 18: 33: 58,131: E/Android Runtime (2089): bei android.app.ActivityThread.main (ActivityThread.java:4424) 12-24 18: 33: 58,131: E/Android Runtime (2089): bei java.lang.reflect.Method.invokeNative (Native Methode) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um java.lang.reflect.Method.invoke (Methode.java:511) 12 -24 18: 33: 58.131: E/AndroidRuntime (2089): um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um dalvik.system.NativeStart. main (Native Methode) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): Verursacht von: java.lang.ClassCastException: android.widget.Button kann nicht in android.widget.ProgressBar 12-24 umgewandelt werden 18: 33: 58.131: E/AndroidRuntime (2089): um com.zoho.showmote.android.activity.ShowDocuments.getAllViews (ShowDocuments.java:50) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): unter com.zoho.showmote.android.activity.ShowDocuments.onCreate (ShowDocuments.java:39) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.app.Activity.performCreate (Aktivität .java: 4465) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1049) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): um android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1920) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): ...11 weitere
Und hier ist meine Aktivität Code
public void getAllViews()
{
**progressBar=(ProgressBar)findViewById(R.id.load_document_progress);**
startButton=(Button)findViewById(R.id.start_btn);
webView=(WebView)findViewById(R.id.document_id);
userName=(TextView)findViewById(R.id.userNameTv);
presentationName=(TextView)findViewById(R.id.presentation_name);
}
Ich habe den Fehler bei erster Linie dieser Methode. Ich ändere die Sichtbarkeit von Ansichten in Asyntask onPreExecute und onPostExecute(). Bitte helfen, was ich hier falsch gemacht habe?
'.ClassCastException: android.widget.Button kann nicht auf android.widget.ProgressBar' gegossen werden bedeutet, dass Sie versuchen, Knopf zu werfen irgendwo im Code ProgressBar so Überprüfen Sie die Deklaration der startButton-Schaltfläche –
progressBar = (ProgressBar) findViewById (R.id.load_document_progress); startButton = (Schaltfläche) findViewById (R.id.start_btn); Mit der Erklärung ist nichts falsch. Es war das Problem der Sonnenfinsternis. Wenn ich den Projektfehler bereinigt habe, ist er verschwunden. – Dinesh
Was meinst du mit ändern der Bestellung? Ändern Sie das XML-Layout zwischen Läufen, oder ändern Sie es, während die App läuft? – Barak