SORU
26 AĞUSTOS 2013, PAZARTESİ


MenuİtemCompat.getActionView her zaman null döndürür

Sadece v7 AppCompat destek kitaplığı ama test ettim her Android sürümü(4.2.2, 2.3.4 ....) MenuItemCompat.getActionView her zaman döndürür null uygulanan

SearchView eylem çubuğunda görüntülenir ama dokunma eylemlerine tepki vermiyor ve EditText göstermek için genişletmek değil ve sadece basit bir simge gibi.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    if (searchView != null) {
        SearchViewCompat.setOnQueryTextListener(searchView, mOnQueryTextListener);
        searchView.setIconifiedByDefault(false);
        Log.d(TAG,"SearchView not null");
    } else
        Log.d(TAG, "SearchView is null");
    }
    return super.onCreateOptionsMenu(menu);
}

Menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@ id/action_search"
          app:showAsAction="always|collapseActionView"
          android:icon="@drawable/abc_ic_search"
          android:title="@string/action_bar_search"
          android:actionViewClass="android.support.v7.widget.SearchView"/>

    <item android:id="@ id/action_refresh"
          android:icon="@drawable/refresh"
          android:title="@string/action_bar_refresh"
          app:showAsAction="ifRoom"/>
</menu>

CEVAP
26 AĞUSTOS 2013, PAZARTESİ


Sonunda çözümü buldum.

  1. app:actionViewClass android:actionViewClass actionViewClass değişen ad

  2. Geçerli etkinlik için android.support.v7.widget.SearchView.OnQueryTextListener arayüz uygulama.

  3. Doğrudan SearchViewCompat.setOnQueryTextListener yerine setOnQueryTextListener kullanın

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.menu, menu);
    
      MenuItem searchItem = menu.findItem(R.id.action_search);
      SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
      if (searchView != null) {
         searchView.setOnQueryTextListener(this);
      }
    
      return super.onCreateOptionsMenu(menu);
    }
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Droid Life

    Droid Life

    17 Kasım 2009
  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013