Java Android ListView中心选择

Java Android ListView中心选择,java,android,Java,Android,我有一个列表视图,显示与搜索最接近的单词匹配 例如,如果我搜索“hi”,我会在ListView中得到以下结果 … 你好 你好,五个人 你好,五个人 高 突出显示 我正在使用 ListView.setSelection(wordList.indexOf(searchWord)); ListView.setSelected(true); 上面的代码将所选单词“hi”放在顶部,不会突出显示所选内容 我希望“hi”能够自动定位、选择并突出显示。 见下文 … 你好 你好 你好 你好,五个人 你好,五

我有一个列表视图,显示与搜索最接近的单词匹配

例如,如果我搜索“hi”,我会在ListView中得到以下结果



你好
你好,五个人
你好,五个人

突出显示

我正在使用

ListView.setSelection(wordList.indexOf(searchWord));
ListView.setSelected(true);
上面的代码将所选单词“hi”放在顶部,不会突出显示所选内容

我希望“hi”能够自动定位、选择并突出显示。 见下文


你好
你好
你好
你好,五个人
你好,五个人

我可以使用什么代码来实现上述功能

非常感谢。

试试这个:

ListView lv = getListView();
  lv.setTextFilterEnabled(true);
   lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();
    }
  });
ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),((TextView)视图).getText(),
吐司。长度(短)。show();
}
});
有关更多信息:

试试
setSelectionFromTop()
你必须自己做数学题。setSelection()将所选项目置于视图顶部,这就是您看到的内容

ListView view = (ListView)findViewById(R.id.YourListView);

int height = view.getHeight();
int itemHeight = view.getChildAt(0).getHeight();
view.setSelectionFromTop(position, height/2 - itemHeight/2);

位置(int)是要在listview中居中的listitem

试试这个。 首先,获取listview的可见项计数

int count=0;
for (int i = 0; i  <= listview.getLastVisiblePosition(); i++)
{
    if (listview.getChildAt(i)!= null)
    {
        count++; 
    }
}
int count=0;

对于(inti=0;我也在寻找一种将列表视图居中的方法…你做到了吗?你能发布代码视图吗?getHeight()可以返回0
int target = position-count/2;
if (target<0) target = 0;
listview.setSelection(target);