2012-10-31 43 views
4

我有一個簡單的佈局與EditText和Listview。實現自定義ArrayList適配器來填充列表視圖和自定義過濾器,以便用戶可以搜索列表視圖中顯示的項目。自定義列表與EditText:Focus

當我運行應用程序時,焦點最初設置爲EditText,並且按預期顯示鍵盤。但這裏是我想要做的:

  1. 當應用程序啓動時,焦點應該初始設置爲ListView。
  2. 如果用戶想通過選擇edittext控件輸入文本,那麼應該出現鍵盤。
  3. (此時隨着用戶輸入文字,列表視圖項目會發生變化 - 我已經暗示了這一點)
  4. 隨着鍵盤仍然打開,如果用戶在列表視圖中選擇一個項目,鍵盤應該消失並觸發listview onItemClick函數。

我該如何做到這一點?

+0

此鏈接可能會幫助您http://stackoverflow.com/questions/5056734/android-force-edittext-to-remove-focus – koti

+0

相關:[ListView中的Focusable EditText](http://stackoverflow.com/q/2679948) – blahdiblah

回答

1

1.增加以下屬性您在其佈局的XML特別EditText

android:focusable="false" 
android:focusableInTouchMode="true" 

2.然後在你的Activity加:

mEditText.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     v.setFocusable(true); 
     return false; 
    } 
}); 

希望這有助於。

+0

謝謝。有了上面的解決方案,EditText並沒有得到關注。無法點擊它並獲取鍵盤。 – user1787709