一个活动有一个Button和一个ListView。最初,只有Button是可见的。按下按钮时,将显示ListView。显示时,是否可以将某个特定项目显示为选中/聚焦?
一个用例可能是,假设它是一个语言设置列表,当该列表打开时,当前选择的语言必须突出显示。
如果我知道项目的索引,如何将其设置为焦点显示?
发布于 2010-10-08 15:12:54
简而言之,ListView::setSelection(int position)就是您需要的。但是,根据设备是否处于触摸模式,它可能具有视觉效果,也可能没有视觉效果(背景突出显示)。有关更多详细信息,请参阅Android ListView Selection Problem
发布于 2013-06-18 22:42:19
我发布了我的解决方案,因为谷歌仍然不知道答案。
getListView().setItemChecked(selectedGroupIndex, true);
发布于 2012-04-23 16:45:08
如果对ListView
使用Adapter
,请将以下代码添加到适配器中:
public class MyAdapter extends ArrayAdapter<MyClass> {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflator = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflator.inflate(R.layout.my_adapter, null);
} else {
rowView = (View) convertView;
}
//...
// set selected item
LinearLayout ActiveItem = (LinearLayout) rowView;
if (position == selectedItem){
ActiveItem.setBackgroundResource(R.drawable.background_dark_blue);
// for focus on it
int top = (ActiveItem == null) ? 0 : ActiveItem.getTop();
((ListView) parent).setSelectionFromTop(position, top);
}
else{
ActiveItem.setBackgroundResource(R.drawable.border02);
}
}
private int selectedItem;
public void setSelectedItem(int position) {
selectedItem = position;
}
}
在你的Activity
中
myAdapter.setSelectedItem(1);
https://stackoverflow.com/questions/3888015
复制相似问题