2012-01-27 21 views
19

OK, tôi đã mở rộng hoạt động của mình đểTôi có thể sử dụng thanh tác vụ tương thích VÀ một đoạn trong cùng một hoạt động không?

extends ActionBarActivity 

menu chính trang của tôi

extends FragmentActivity 

khi tôi thay đổi nó để mở rộng ActionBarActivity vì vậy tôi có thể thấy tiêu đề thanh hành động của tôi trên menu chính, nó ném lên và mang lại cho tôi lỗi "Lỗi lạm phát phân đoạn lớp".

Có cách nào xung quanh vấn đề này không?

Trả lời

76

ActionBarActivity extends android.support.v4.app.FragmentActivity, do đó ActionBarActivity phục vụ cả hai mục đích.

+0

nó thực sự hữu ích – Omid

2

Mã của bạn có từ the Action Bar compatibility example đi kèm với SDK không? Nếu chỉ thay đổi lớp ActionBarActivity trong ví dụ đó để mở rộng FragmentActivity (từ số compatibility library tôi giả định) thay vì Activity.

+1

-Vâng, đó là từ ví dụ SDK. -khi tôi sử dụng mở rộng FragmentActivity thanh hành động không hiển thị ... – Jarrette

0

Có cùng vấn đề và giải pháp, như đã đề cập trong các câu trả lời khác, là chỉnh sửa lớp học ActionBarActivity của bạn.

Lớp này được xác định trong mã của bạn (com.google.android.actionbarcompat). Điều duy nhất bạn phải làm là thay đổi extends Activity thành extends FragmentActivity từ android.support.v4.app.FragmentActivity.

0

Bạn có các mục menu cho Phân đoạn của mình không? Sử dụng riêng namespace app của bạn thay vì android cho app:showAsActionapp:actionLayout vv

Để thêm namespace của bạn vào XML sử dụng dòng này trong thẻ menu

xmlns:app="http://schemas.android.com/apk/res-auto" 

Ví dụ:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item android:id="@+id/menu_settings" app:showAsAction="ifRoom" android:title="@string/menu_settings" android:orderInCategory="100" /> 
</menu> 

Lưu ý app:showAsAction hơn android:showAsAction

Các vấn đề liên quan