2012-12-24 4 views
6

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?

+0

'.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 –

+0

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

+0

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

Antwort

9

wenn Sie die Reihenfolge der Widgets ändern. Säubern Sie Ihr Projekt und bauen Sie es erneut auf.

im Eclipse-Menü, Projekt ---> Sauber

+0

Ja, Sie sind richtig @ Nagaraj. Das war Eklipse Problem :) – Dinesh

+0

Danke - das half :) – nithinreddy

+0

Unglaublich. Wer hätte das gedacht? Vielen Dank! – MaxK

Verwandte Themen