【Android】ListView中EditText焦點問題

 

1、描述:

    近期一個項目中須要開發一種相似表格的界面來顯示和配置參數,Android並沒有直接相似表格的控件支持,我採用了ListView中佈局EditText和TextView來實現,其中TextView用來顯示參數表示符,EditText用來顯示參數值,用一個自定義AlertDialog彈出顯示,以下圖所示。html

 

2、問題:

    開發出來的APK軟件,在手機上操控是OK的,但在電視上沒法操控,具體表現爲:android

 

 3、解決:

 經過設置focus停在ListView上,解決ListView沒法點擊的問題。方法以下佈局

 關於問題2和3,自己和1就是互斥的,例如我將焦點手動設置到EditText上,此時沒法響應點擊ListView,更要命的,邏輯徹底混亂,例如我按向下鍵時,光標停留在第一欄,而焦點已經已跟隨遙控移動到了 下一欄,此時按OK鍵,修改的仍是光標停留的那一欄的數據,如圖3所示。 最終通過反覆嘗試,下述解決方法得以解決。spa

解決方法:在ListView中setOnItemSelectedListener的onItemSelected 和 onNothingSelected分別輸入下述代碼3d

 

 

3 關於問題4,沒法調出輸入法問題,網上介紹的零零總總,絕大部分都是無用的,僅有一種方法是OK,原文連接在這,解決方法以下:htm

 

 4、說明:

1 關於android:descendantFocusability,有三個屬性值,簡述以下表,詳述可參考這篇博文說明。blog

beforeDescendantsci

viewgroup會優先其子類控件而獲取到焦點開發

afterDescendantsget

viewgroup只有當其子類控件不須要獲取焦點時才獲取焦點

blocksDescendants

viewgroup會覆蓋子類控件而直接得到焦點

相關文章
相關標籤/搜索