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

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • RaquelGamesBR

    RaquelGamesB

    20 HAZİRAN 2009