【Android】ListView中EditText焦點問題


【Android】ListView中EditText焦點問題

SkySeraph Apr. 21st 2013

Emailskyseraph00@163.com

 一、描述:

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

 

二、問題:

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

 

 三、解決:

通過設置focus停在ListView上,解決ListView無法點擊的問題。方法如下

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

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

 

 

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

 

 四、說明:

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

beforeDescendants

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

afterDescendants

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

blocksDescendants

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM