2015-08-23 20 views
22

Geçenlerde Android Studio Eclipse göç etmiş ve bunu yaparken de ben bu hata alınır aşağıdaki hatayıjava.lang.UnsupportedOperationException: Bu desteklenmez MenuItemCompat.setOnActionExpandListener()

java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener() 
     at android.support.v7.internal.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:740) 
     at biz.nickbullcomputing.bevnav.MainActivity.onCreateOptionsMenu(MainActivity.java:699) 
     at android.app.Activity.onCreatePanelMenu(Activity.java:2851) 
     at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:277) 
     at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:84) 
     at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:273) 
     at android.support.v7.app.AppCompatDelegateImplV7.preparePanel(AppCompatDelegateImplV7.java:1111) 
     at android.support.v7.app.AppCompatDelegateImplV7.doInvalidatePanelMenu(AppCompatDelegateImplV7.java:1396) 
     at android.support.v7.app.AppCompatDelegateImplV7.access$100(AppCompatDelegateImplV7.java:89) 
     at android.support.v7.app.AppCompatDelegateImplV7$1.run(AppCompatDelegateImplV7.java:126) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:155) 
     at android.app.ActivityThread.main(ActivityThread.java:5725) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825) 

almış kullanmak benim ana faaliyet aşağıdaki kod pasajımızdaki olma

searchItem = menu.findItem(R.id.action_search); 

    searchItem.setOnActionExpandListener(new OnActionExpandListener() 
    { 
     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      townList.setVisibility(View.INVISIBLE); 
      return true;  // Return true to collapse action view 
     } 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      townList.setVisibility(View.VISIBLE); 
      return true;  // Return true to expand action view 
     } 
    }); 

arama en xml kodu:

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

Benim build.gradle dosyasının bağımlılıkları

dependencies { 
compile 'com.android.support:support-v4:22.2.1' 
compile 'com.android.support:appcompat-v7:22.0.0' 
compile 'com.google.android.gms:play-services:+' 

}

Şimdi bu mükemmel çalışıyordu geçişten önce akılda tutulması ve şimdi değil. Bunun nasıl gerçekleştiğinden emin değilim. Herhangi bir fikir?

+4

deneyin 'MenuItemCompat.OnActionExpandListener' yerine MenuItemImpl.OnActionExpandListener' –

+0

Bunu denedim' kullanımı ancak 'Yöntem Çağrı Expected' bir hata alıyorum bir yere bir ithalat eksik için? – TaurusDroid

+0

Oh wiat ben ( – TaurusDroid

cevap

61

Düzeltme ρяσѕρєя K'nin yorumuyla teşekkür ederiz. Çok takdir dostum, teşekkür ederim!

MenuItemCompat.setOnActionExpandListener(searchItem, 
      new MenuItemCompat.OnActionExpandListener() { 
       @Override 
       public boolean onMenuItemActionExpand(MenuItem menuItem) { 
        // Return true to allow the action view to expand 
        townList.setVisibility(View.VISIBLE); 
        return true; 
       } 
       @Override 
       public boolean onMenuItemActionCollapse(MenuItem menuItem) { 
        // When the action view is collapsed, reset the query 
        townList.setVisibility(View.INVISIBLE); 
        // Return true to allow the action view to collapse 
        return true; 
       } 
      }); 
+8

trick yaptım teşekkür @ ρяσѕρєя K var Ben aynı tam sınıf ve yöntem kullanıyorum, ama yine de çalışmıyor! :( – Virat18

0

Ben bunu uygulamanızı/build.gradle kontrol setOnActionExpandListener 26.1.0 önerilmiyor çünkü derleme bağımlılığı kontrol etmek zorunda düşünüyorum. Aynı sorunu yaşadım ve aşağıdaki yapılandırma bana yardımcı oluyor. Umarım bu senin için çalışacaktır.

İşte build.gradle config'im.

compileSdkVersion 25 
buildToolsVersion "25.0.2" 
targetSdkVersion 25 

compile 'com.android.support:support-v4:25.3.1' 
compile 'com.android.support:recyclerview-v7:25.3.1' 
compile 'com.android.support:cardview-v7:25.3.1' 
compile 'com.android.support:support-vector-drawable:25.3.1' 
compile 'com.android.support:design:25.3.1' 

MenuItemCompat.setOnActionExpandListener(item, 
       new MenuItemCompat.OnActionExpandListener() { 
        @Override 
        public boolean onMenuItemActionExpand(MenuItem menuItem) { 
         // Return true to allow the action view to expand 
         return true; 
        } 

        @Override 
        public boolean onMenuItemActionCollapse(MenuItem menuItem) { 
         // When the action view is collapsed, reset the query 
         // Return true to allow the action view to collapse 
         return false; 
        } 
       }); 
İlgili konular