2015-10-03 106 views
0

我創建了一個簡單的適配器,以便自動完成我的自動完成文本視圖,並且我想在用戶單擊自動完成文本時隱藏鍵盤。Android - 在SimpleAdapter上隱藏鍵盤

我已經創建了一個隱藏de鍵盤的函數,但是我在SimpleAdapter上使用它有一些問題,我只需要獲取當前活動來調用函數。

隱藏鍵盤功能在這裏:

public static void hideSoftKeyboard(Activity activity) { 
     InputMethodManager inputMethodManager = (InputMethodManager) activity 
       .getSystemService(Activity.INPUT_METHOD_SERVICE); 
     inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus() 
       .getWindowToken(), 0); 
    } 

SimpleAdapter代碼:

public class ACAdapter extends SimpleAdapter { 

    Context context; 

    public ACAdapter(Context context, List<? extends Map<String, ?>> data, 
      int resource, String[] from, int[] to) { 
     super(context, data, resource, from, to); 
     // TODO Auto-generated constructor stub 
    } 

    public View getView(final int position, final View convertView, 
      final ViewGroup parent) { 

     View v = super.getView(position, convertView, parent); 

     final String id = (String) ((Map) getItem(position)) 
       .get(EventsFragment.ITEM_SECTIONID); 

     v.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       GetSpots task = new GetSpots(); 
       task.execute(id); 

       EventsFragment.refresh = false; 

       EventsFragment.loading_bg.setVisibility(View.VISIBLE); 

       hideSoftKeyboard(context.getActivity()); 

      } 

     }); 

     return v; 

    } 

} 

所以,我試圖用 「context.getActivity」,但沒有工作,我收到這樣的警告:

The method getActivity() is undefined for the type Context 

有沒有辦法做我想要的?

回答

0

嘗試將您的上下文轉換爲類型活動

hideSoftKeyboard((Activity)context); 
+0

沒有工作「的方法hideSoftKeyboard(活動)是未定義的類型新View.OnClickListener(){}」 –

+0

是現在工作很好,謝謝 –

+0

@RúbenDias提醒一下,要小心'activity.getCurrentFocus()'因爲這可能會返回'null' – user2234894