【问题标题】:Android NullPointerException on SearchView using ActionBar使用 ActionBar 的 SearchView 上的 Android NullPointerException
【发布时间】:2014-11-17 18:21:36
【问题描述】:

我正在尝试在我的操作栏中实现搜索功能,但它没有按预期工作,当我运行应用程序时出现以下错误:

 java.lang.NullPointerException
            at br.com.representemais.FragmentClientes.onCreateOptionsMenu(FragmentClientes.java:80)

第 80 行:searchView.setQueryHint(this.getString(R.string.search));

@Override
    public void onCreate(Bundle savedInstanceState) {
        shouldExecuteOnResume = false;

        super.onCreate(savedInstanceState);
        // TODO Auto-generated method stub
        setContentView(R.layout.fragment_cliente);




    }



@Override
public boolean onCreateOptionsMenu(Menu menu ) {
    // TODO Auto-generated method stub
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);


    searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(Menus.PROCURAR));
    searchView.setQueryHint(this.getString(R.string.search));

    ((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text))
    .setHintTextColor(getResources().getColor(R.color.white));
    searchView.setOnQueryTextListener(OnQuerySearchView);



    menu.findItem(Menus.PROCURAR).setVisible(true);



    return super.onCreateOptionsMenu(menu);

}

XML:

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

    <item
        android:id="@+id/menu_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="ifRoom|collapseActionView"
        />





</menu>

【问题讨论】:

  • 你试过 R.id.menu_search 而不是 Menus.PROCURAR 吗?
  • @bhowden 是的,我试过了
  • 你试过用this.findViewById(R.id.menu_search)得到它吗?
  • @IanSellar 我也试过了...
  • 如果您发布MCVE,它将帮助其他人复制和解决问题。

标签: java android search android-actionbar android-menu


【解决方案1】:

究竟是哪一行给了你错误?

如果您的 API 级别为 11 或更高,请尝试这样做

SearchView search = (SearchView) menu.findItem(R.id.menu_search).getActionView();

我也认为你设置hintTextColor的editText实际上是一个textview

TextView searchText = (TextView)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);

参考这个问题:SearchView edittext is always null

【讨论】:

    【解决方案2】:

    刚刚发现我的问题,我不得不将我的课程扩展到ActionBarActivity,现在它可以工作了,谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 2014-08-11
      • 2016-11-04
      • 1970-01-01
      • 2016-01-18
      相关资源
      最近更新 更多