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

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013
  • USI Events

    USI Events

    6 AĞUSTOS 2013