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