Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将侦听器添加到ActionBar项,OnOptions项Selected NullPointerException_Java_Android_Nullpointerexception_Actionbarsherlock_Android Actionbar - Fatal编程技术网

Java 将侦听器添加到ActionBar项,OnOptions项Selected NullPointerException

Java 将侦听器添加到ActionBar项,OnOptions项Selected NullPointerException,java,android,nullpointerexception,actionbarsherlock,android-actionbar,Java,Android,Nullpointerexception,Actionbarsherlock,Android Actionbar,*回答!:*事实证明,即使你有一个图标,你也需要一个项目的标题 我目前正在应用程序中实现(Sherlock)操作栏。我目前有一个屏幕上的按钮,刷新我的屏幕视图,我想将此按钮移动到我的操作栏中。OnOptions ItemSelected的日志未显示在LogCat中,但已创建菜单正在显示 我不知道为什么我会得到一个空指针,并且在错误日志中找不到发生空指针的位置。只有当我点击操作栏上的刷新按钮时,应用程序才会崩溃,并且在这之前,其他一切都做得很好 public boolean onCreateOpt

*回答!:*事实证明,即使你有一个图标,你也需要一个项目的标题

我目前正在应用程序中实现(Sherlock)操作栏。我目前有一个屏幕上的按钮,刷新我的屏幕视图,我想将此按钮移动到我的操作栏中。OnOptions ItemSelected的日志未显示在LogCat中,但已创建菜单正在显示

我不知道为什么我会得到一个空指针,并且在错误日志中找不到发生空指针的位置。只有当我点击操作栏上的刷新按钮时,应用程序才会崩溃,并且在这之前,其他一切都做得很好

public boolean onCreateOptionsMenu(Menu menu) {
        Log.i("Created Menu", "Yes");
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.main, menu);


        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        Log.i("Got into onOptionsItemSelected", "Yes");
        switch(item.getItemId()){

        case R.id.action_refresh:

                new getFleetList().execute(getFleetListURL);
                progressBar.setVisibility(ProgressBar.VISIBLE);

        return true;

    }

堆栈跟踪:

07-09 12:52:27.594: W/dalvikvm(23570): threadid=1: thread exiting with uncaught exception (group=0x4132e930)
07-09 12:52:27.601: E/AndroidRuntime(23570): FATAL EXCEPTION: main
07-09 12:52:27.601: E/AndroidRuntime(23570): java.lang.NullPointerException
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.MenuItemImpl.toString(MenuItemImpl.java:496)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at java.lang.StringBuilder.append(StringBuilder.java:202)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.actionbarsherlock.app.SherlockFragmentActivity.onMenuItemSelected(SherlockFragmentActivity.java:201)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:980)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:547)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:115)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.view.View.performClick(View.java:4204)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.view.View$PerformClick.run(View.java:17355)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.os.Handler.handleCallback(Handler.java:725)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.os.Looper.loop(Looper.java:137)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at android.app.ActivityThread.main(ActivityThread.java:5041)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at java.lang.reflect.Method.invokeNative(Native Method)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at java.lang.reflect.Method.invoke(Method.java:511)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-09 12:52:27.601: E/AndroidRuntime(23570):    at dalvik.system.NativeStart.main(Native Method)
编辑,XML文件:

菜单XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >




     <item
        android:id="@+id/action_refresh"
        android:icon="@drawable/ic_action_refresh"
        android:orderInCategory="1"
        android:showAsAction="always"

        />


</menu>

您正在使用这些导入吗

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
否则你会得到错误

试试这个

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

    com.actionbarsherlock.view.MenuInflater inflate = getSupportMenuInflater();
    inflate.inflate(R.menu.main, menu);

    return super.onCreateOptionsMenu(menu);
}


@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.action_refresh:
            //do whatever you want
        break;
        default:
            return super.onOptionsItemSelected(item);
    }
}
****更新****

<item
        android:id="@+id/action_legalnotice"
        android:orderInCategory="100"
        android:title="Legal Notices"/>
     <item
        android:id="@+id/action_refresh"
        android:icon="@drawable/ic_action_refresh"
        android:orderInCategory="1"
        android:showAsAction="always"


android:title="Your title here please"

        />


有关详细信息,请参阅此链接:

这不是答案。这应该是一个评论。谢谢你的回复。是的,我正在导入这些(导入com.actionbarsherlock.view.*)。不幸的是,这些修复似乎没有奏效。OnOptions ItemSelected是否以某种方式获取空项?没有输入该方法。请在问题中添加xml菜单,谢谢!我想我不需要标题,因为我有一个图标!