Đây là tệp bố cục của tôiNgoại lệ diễn xuất lớp trong FrameLayout khi đang cố thay đổi thứ tự lượt xem trong bố cục xml?
<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>
Điều này đang hoạt động. Nhưng khi tôi phải thay đổi thứ tự của các nguyên tố. Tôi sẽ nhận được ClassCastException. Đây là dấu vết logcat của tôi.
12-24 18: 33: 58,131: E/AndroidRuntime (2089): Fatal EXCEPTION: chính 12-24 18: 33: 58,131: E/AndroidRuntime (2089): java.lang.RuntimeException: Không thể bắt đầu hoạt động ComponentInfo {com.zoho.showmote/com.zoho.showmote.android.activity.ShowDocuments}: java.lang.ClassCastException: android.widget.Button không thể truyền tới android.widget.ProgressBar 12- 24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1956) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.Activ ityThread.handleLaunchActivity (ActivityThread.java:1981) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.ActivityThread.access $ 600 (ActivityThread.java:123) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1147) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android. os.Handler.dispatchMessage (Handler.java:99) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.os.Looper.loop (Looper.java:137) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.ActivityThread.main (ActivityThread.java:4424) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại java.lang.reflect.Method.invokeNative (Phương thức Gốc) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại java.lang.reflect.Method.invoke (Method.java stronger11) 12 -24 18: 33: 58.131: E/AndroidRuntime (2089): tại com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại dalvik.system.NativeStart. main (Native Method) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): Gây ra bởi: java.lang.ClassCastException: android.widget.Button không thể truyền tới android.widget.ProgressBar 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại com.zoho.showmote.android.activity.ShowDocuments.getAllViews (ShowDocuments.java:50) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại com.zoho.showmote.android.activity.ShowDocuments.onCreate (ShowDocuments.java:39) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.Activity.performCreate (Hoạt động .java: 4465) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1049) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): tại android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1920) 12-24 18: 33: 58.131: E/AndroidRuntime (2089): ...11 hơn
Và đây là Hoạt động tôi đang
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);
}
Tôi đã nhận lỗi tại dòng 1 của phương pháp này. Tôi đang thay đổi độ hiển thị của các khung nhìn trong OnPreExecute của Asyntask và onPostExecute(). Xin hãy giúp tôi làm gì sai ở đây?
'.ClassCastException: android.widget.Button không thể được đúc để android.widget.ProgressBar' có nghĩa là bạn đang cố gắng để cast Nút ProgressBar nơi nào đó trong mã để kiểm tra khai báo nút startButton –
progressBar = (ProgressBar) findViewById (R.id.load_document_progress); startButton = (Button) findViewById (R.id.start_btn); Không có gì sai với tuyên bố. Đó là vấn đề nhật thực. Khi tôi làm sạch lỗi dự án đã biến mất. – Dinesh
Bạn có ý gì khi thay đổi thứ tự? Thay đổi bố cục xml giữa các lần chạy hoặc thay đổi nó trong khi ứng dụng đang chạy? – Barak