我需要在进入activity的时候,用代码选中listView中的某行。我的activity继承至ListActivity。显示的时候时加入到一个TabActivity中的一个TabHost页面下。选中listView中某行的代码如下:
getListView().requestFocusFromTouch();
getListView().setSelection(position);在网上查到如果把这段代码加入到onCreate()中,是不会有效果的。说是要加入onStart()或者onRestart()或者onResume()中。但是我在这三个函数中都添加后,第一次进入Activity还是没有效果,如果是切换Tab页面,再却换回来,才会看到选中listView中的那一行。有什么方法在第一次进入Activity的时候就能看到选中listView中的某行。

解决方案 »

  1.   

    setSelection()这个方法应该是要在你的adapter完全的完成之后才可以去设,否则各个item的position都没定的话,setSelection()这个方法肯定就不好使。提供个思路,你可以用监听模式去监听adapter的数据是否加载完毕,待完毕之后再去设置选中项
      

  2.   


    如何监听?是用adapter中的函数呢,还是其他什么方法?
      

  3.   

    楼主可以换思路或者在getview中加载完最后一条数据后发送一个消息给handler来执行setSelection()