我有一个带有简单ArrayAdapter的ListView
dogsList.setAdapter(new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, dogsArray));
如果用户点击某个项目,则背景颜色会发生变化。到目前为止一切都很棒。
这是我的问题:当用户返回时,我想预先突出显示最后一个选择。我已经尝试了许多事情来预先突出显示其中一个条目,但它不起作用。
假设我知道之前的选择并通过意图或其他方式传递,比如prev=5
。我如何高亮背景?
我正在使用真实设备(注5)进行测试。我不明白这是否适用:Android ListView programmatic selection/highlight。无论如何,我做到了它并没有奏效:没有亮点。
答案 0 :(得分:0)
可能会有所帮助
View row = null;
list_view.post(new Runnable() {
@Override
public void run() {
int nPos = Prev;
list_view.setSelection(nPos);
View v = list_view.getChildAt(nPos);
if (v != null) {
option_list.performItemClick(v, nPos, list_view.getItemIdAtPosition(nPos));
v.requestFocus();
}
}
});
list_view.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long arg3) {
// TODO Auto-generated method stub
if (row != null) {
row.setBackgroundResource(R.color.DarkGray);
}
row = v;
v.setBackgroundResource(R.color.White);
}
});