1
我有一個edittext和一個線性佈局的列表視圖。假設有5個結果當前在列表中總共可見10.當我從編輯文本向下滾動到列表視圖,列表視圖中的第5項(我認爲它始終是最後一個)獲得焦點,而不是第一項!我應該如何解決這個問題?listview中的第一項沒有得到重點
我有一個edittext和一個線性佈局的列表視圖。假設有5個結果當前在列表中總共可見10.當我從編輯文本向下滾動到列表視圖,列表視圖中的第5項(我認爲它始終是最後一個)獲得焦點,而不是第一項!我應該如何解決這個問題?listview中的第一項沒有得到重點
1)創建一個處理程序,作爲您的活動中的一個字段。像這樣:
private Handler myHandler = new Handler();
2)當您創建ListView時,添加一個OnFocusChangeListener,如下所示。
myList.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
myHandler.postAtFrontOfQueue(new Runnable() {
public void run() {
myList.setSelection(0);
}
});
}
}
});
雖然這有效,但這是一個昂貴的電話,我想。這裏是文檔也說「這種方法只適用於非常特殊的情況 - 它可以很容易地捱餓消息隊列,導致排序問題,或有其他意想不到的副作用。」。我想知道爲什麼我需要一個處理程序那? – 2011-02-03 06:40:57