Tôi đang cố gắng để thêm một support.v4.app.Fragment
đến một PreferenceActivity
tiêu đề, như vậy:Android: Giải pháp cho support.v4.app.Fragment -> Fragment classcastexception?
<header
android:fragment="com.example.SupportFragmentSubClass"
android:title="Selecting this should show the accompanying fragment" >
</header>
này ném một ClassCastException, có lẽ vì PreferenceActivity đang mong đợi một sub-class của android.app.Fragment
, chứ không phải là support.v4.app.Fragment
.
Trường hợp sử dụng của tôi là:
Tôi có phân đoạn không chuẩn mà tôi muốn sử dụng làm tùy chọn trên cả hai thiết bị < 3.0 và> 3.0. Đối với> = 3.0, tôi cần một lớp con android.app.Fragment
để nó có thể được nhúng trong 'ngăn chi tiết' của hoạt động tùy chọn trên thiết bị máy tính bảng. Đối với < 3.0, tôi cần một lớp con v4.support.app.Fragment
để tôi có thể ném vào một số ActivityFragment
.
Có cách giải quyết nào cho phép tôi sử dụng Phân đoạn tương thích trong trường hợp này không?
Xin lỗi, tôi không nghĩ giải pháp của @CommonsWare là hoàn hảo. Trên thực tế, chúng ta cần một Compatibility PreferenceFragment. Bởi vì PreferenceFragment có thể được đặt trong bất kỳ bố trí nào của bất kỳ hoạt động nào ngay cả khi hoạt động kéo dài từ ActionBarActivity. PreferenceActivity không mở rộng từ ActionBarActivity, nó không có bố trí ActionBar nhất quán trong tất cả các phiên bản Android. – Lei