我如何在SearchView中解决ListView NullPointerException

时间:2016-11-15 17:34:38

标签: android nullpointerexception searchview

我正在尝试搜索自定义列表视图,但是我遇到了NullPointerException的问题

在line76中有一个错误,logcat:

java.lang.NullPointerException
                                                                              at com.aeu.mlibrary.mlibraryaeu.SearchFragment.onCreateOptionsMenu(SearchFragment.java:76)

当我在第76行检查时,这是代码:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

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

    MenuItem myActionMenuItem = menu.findItem( R.id.item_search);
    final SearchView searchView = (SearchView) myActionMenuItem.getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            if (TextUtils.isEmpty(newText)) {
                adapter.filter("");
                lvSearch.clearTextFilter();
            } else {
                adapter.filter(newText);
            }
            return true;
        }
    });

    super.onCreateOptionsMenu(menu, inflater);
}

第76行是:

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

这是我的menu.xml:

<item android:id="@+id/itemSearch"
    android:actionViewClass="android.widget.SearchView"
    android:icon="@mipmap/ic_search_white_48dp"
    android:title="@string/action_search"
    app:showAsAction="ifRoom" />

我需要你的帮助!

1 个答案:

答案 0 :(得分:0)

SearchView searchView = (SearchView) menu.findItem(R.id.itemSearch);

这本身就可以获得searchView对象。我认为getActionView()是空指针异常的原因。