【问题标题】:Setting setOnQueryTextListener for SearchView gives null pointer exception为 SearchView 设置 setOnQueryTextListener 会产生空指针异常
【发布时间】:2014-02-11 15:12:29
【问题描述】:

我在操作栏中有搜索视图作为选项菜单

inonCreateOptionsMenu 方法我得到的搜索视图如下

inflater.inflate(R.menu.main, menu);

     SearchView searchView = (SearchView) menu.findItem(R.id.serach).getActionView();

当我尝试设置 setOnQueryTextListener 时,它给了我空指针异常。

我的代码如下

mSearchView.setOnQueryTextListener(new OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String arg0) {

            return true;
        }

        @Override
        public boolean onQueryTextChange(String arg0) {

            return false;
        }
    });

当我删除监听器时它工作正常。 谁能告诉我做错了什么。

logcat 日志

    02-11 20:04:15.574: E/AndroidRuntime(27028): FATAL EXCEPTION: main
02-11 20:04:15.574: E/AndroidRuntime(27028): java.lang.NullPointerException
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.example.test.PM_Fragment.onCreateOptionsMenu(PM_Fragment.java:61)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.app.Fragment.performCreateOptionsMenu(Fragment.java:1865)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1919)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.app.Activity.onCreatePanelMenu(Activity.java:2552)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:479)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:845)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:273)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.os.Handler.handleCallback(Handler.java:725)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.os.Looper.loop(Looper.java:158)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at android.app.ActivityThread.main(ActivityThread.java:5751)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at java.lang.reflect.Method.invokeNative(Native Method)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at java.lang.reflect.Method.invoke(Method.java:511)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
02-11 20:04:15.574: E/AndroidRuntime(27028):    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 请发布堆栈跟踪
  • 也许您可以发布 LogCat 信息。
  • 我已经编辑了原帖
  • PM_Fragment 的第 61 行是什么?
  • @Emmanuel:你是如何格式化日志的??

标签: android menu searchview


【解决方案1】:

我怎么会这么笨。

我在searchView 中获得了搜索视图,我正在为mSearchView 设置监听器。这完全是我的错误

【讨论】:

    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2022-11-02
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多