2013-03-04 30 views
6

Tôi muốn bật Android ActionBar, tuy nhiên nó không hoạt động đối với tôi.Android ActionBar NullPointerException

Đây là tôi MainActivity:

public void onCreate(Bundle savedInstanceState) { 

     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 


     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     ActionBar actionBar = getActionBar(); 
     actionBar.show(); 
     //more code............ 

và đây là logcat:

03-04 16:31:09.423: E/AndroidRuntime(1441): FATAL EXCEPTION: main 
03-04 16:31:09.423: E/AndroidRuntime(1441): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.salebook/com.example.salebook.MainActivity}: java.lang.NullPointerException 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.os.Looper.loop(Looper.java:137) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at java.lang.reflect.Method.invoke(Method.java:511) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at dalvik.system.NativeStart.main(Native Method) 
03-04 16:31:09.423: E/AndroidRuntime(1441): Caused by: java.lang.NullPointerException 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at com.example.salebook.MainActivity.onCreate(MainActivity.java:130) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.Activity.performCreate(Activity.java:5104) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
03-04 16:31:09.423: E/AndroidRuntime(1441):  ... 11 more 

đâu dòng 130 là anctionBar.show() và tôi có trong res/menu/menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/itemid_0" 
     android:title="Action Item 0" 
     android:icon="@drawable/ic_launcher" 
     android:orderInCategory="0" 
     android:showAsAction="ifRoom|withText" /> 
    <item android:id="@+id/itemid_1" 
     android:title="Action Item 1" 
     android:orderInCategory="0" /> 
    <item android:id="@+id/itemid_2" 
     android:title="Action Item 2" 
     android:orderInCategory="0" /> 
    <item android:id="@+id/itemid_3" 
     android:title="Action Item 3" 
     android:orderInCategory="0" /> 
</menu> 

Tôi không tìm thấy vấn đề. Hy vọng ai đó giúp tôi.

Cảm ơn.

Ngoài ra, trong phong cách appThem:

<style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:windowActionBar">true</item> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    </style> 
+0

Dòng số 130 trong MainActivity.java là gì? – Pragnani

+0

@Pragnani 'actionBar.show()' – ninetwozero

+0

là thanh tác vụ không? – Pragnani

Trả lời

7

Bạn Actionbar trả về null bởi vì bạn không có actionbar nhưng bạn đang yêu cầu sử dụng getActionbar()

Hãy chắc chắn rằng bạn đã tính năng cửa sổ để hiển thị actionbar của bạn, đó là cần thiết cho actionbar để hiển thị. Kiểm tra các liên kết dưới đây để biết thêm chi tiết. ... kiểm tra câu hỏi này getActionBar returns null Và cũng kiểm tra liên kết này cho biết thêm thông tin về vấn đề của bạn http://blog.perpetumdesign.com/2011/08/strange-case-of-dr-action-and-mr-bar.html

1

Bạn có thực sự thấy một actionbar nếu bạn loại bỏ dòng actionBar.show()? Nếu không, nó có thể liên quan đến chủ đề của bạn, ví dụ: Theme.Light.NoActionBar.

+0

vẫn là cùng một NullPointerException Mặc dù tôi đã xóa dòng này –

+0

Bạn có chủ đề tùy chỉnh cho ứng dụng/hoạt động của mình không? – nhaarman

+0

trong tệp manifest.xml, tôi có dòng này: android: theme = "@ style/AppTheme" –

6

Bạn Remove

android:theme="@style/AppTheme" 

trong "ứng dụng" từ AndroidManifest.xml

0

đi đến AndroidManifest .xml và thay thế

android:theme="@style/AppTheme" 

bởi

android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 
Các vấn đề liên quan