2016-06-27 7 views
-1

してください、AutoCompleteTextView、ドロップダウン、setOnDismissListener、私が表示されますを検出し、下17、その後APIにAutoCompleteTextViewドロップダウンで消えることができますどのように= 17</p> <p><17 API

setOnDismissListenerを助けるだけでAPIの仕事ですか>?

+1

にこのコードを入れて、あなたのコードは次のように何を求めていますか?何を試しましたか? 'setOnDismissListener'がAPI> = 17で動作しないことをどのように知っていますか? – SunSparc

+1

のAndroid Studioは私に言ったので: コールは、APIレベル17を(現在の分が15である)必要があります。android.widget.AutoCompleteTextView#setOnDismissListener少ない...(Ctrlキー+ F1) – Andreyua

+0

mActvSearchWeb.setOnDismissListener(新AutoCompleteTextView.OnDismissListener(){ @オーバーライド public void onDismiss(){ } }); – Andreyua

答えて

0

APIレベル16でテストされています(正常に動作しています)。しかし、Androidの教祖のための質問:私はとにかくそれほど適切ではない方法だと思いますし、私はあなたの賢明な助言をお待ちしております:

public class CustomAutoCompleteTextView extends AutoCompleteTextView

public void setupActv() { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
     setOnDismissListener(new OnDismissListener() { 
      @Override 
      public void onDismiss() { 
       Log.d("testThisShit", "on Dismiss"); 
      } 
     }); 
    } else { 
     try { 
      Field popup = AutoCompleteTextView.class.getDeclaredField("mPopup"); 
      popup.setAccessible(true); 
      ListPopupWindow popupWindow = (ListPopupWindow) popup.get(this); 

      popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { 
       @Override 
       public void onDismiss() { 
        Log.d("testThisShit", "on Dismiss < 17"); 
       } 
      }); 

     } catch (NoClassDefFoundError | ClassCastException | NoSuchFieldException | IllegalAccessException e) { 
      Log.d("testThisShit", e.getMessage()); 
     } 
    } 
} 
関連する問題