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

  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • Julia Graf

    Julia Graf

    6 Mayıs 2006
  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009