listview中的第一项没有得到重点

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); 
        } 
       }); 
      } 
     } 
    }); 
+0

虽然这有效,但这是一个昂贵的电话,我想。这里是文档也说“这种方法只适用于非常特殊的情况 - 它可以很容易地挨饿消息队列,导致排序问题,或有其他意想不到的副作用。”。我想知道为什么我需要一个处理程序那? – 2011-02-03 06:40:57