【问题标题】:NullPointerException on ActionBarActionBar 上的 NullPointerException
【发布时间】:2014-11-20 16:12:21
【问题描述】:

好的,我已经阅读了很多关于这个错误的信息,现在我觉得我疯了 下面是我的 Activity 的 onCreate

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_event);

    i_name= (EditText)findViewById(R.id.input_event_name);
    i_loc = (EditText)findViewById(R.id.input_event_location);
    i_date = (EditText)findViewById(R.id.input_event_date);
    i_time = (EditText)findViewById(R.id.input_event_time);
    i_desc = (EditText)findViewById(R.id.input_event_description);

    final LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.action_bar_edit_mode, null);

   this.getActionBar().setDisplayShowCustomEnabled(true);
   this.getActionBar().setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

我从here 得到代码来获得 2 个操作栏按钮。 我在笔记本电脑上完成了整个过程,现在我正试图让它在我的电脑上运行。

现在我读到一些关于“我的活动中没有操作栏”的内容,并且我读到了一些关于“我没有设置标题”的内容。 它在我的笔记本电脑上运行良好。 我尝试设置 Feature_action 栏。 getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

我也尝试设置另一个主题,但没有任何帮助。

minSdkVersion 11 targetSdkVersion 21

日志猫

java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2228)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2277)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5147)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
        at com.test.test2.NewEvent.onCreate(NewEvent.java:92)

任何人都知道发生了什么并且有另一个我可以尝试的想法?

【问题讨论】:

  • 你的主题是什么,你的课程扩展了什么?
  • 类扩展了 ActionBarActivity。我尝试将其设置为 Activity 没有变化。 style.xml 里面的主题是 Theme.AppCompat.Light.DarkActionBar
  • 你应该使用 getSupportActionBar() 而不是 getActionBar

标签: java android android-layout android-activity nullpointerexception


【解决方案1】:

由于您使用的是ActionBarActivity(来自支持库),您需要调用支持方法:

getSupportActionBar();

编辑-回复评论:

和你做的一样:

getSupportActionBar().setCustomView(view, new ActionBar.LayoutParams(ViewGroup
        .LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

但请确保从支持库导入 ActionBar:

import android.support.v7.app.ActionBar;

【讨论】:

  • 谢谢,效果很好。导入很重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多