【发布时间】:2014-05-01 21:59:57
【问题描述】:
我在平板电脑应用程序中有一个自定义 ListView,左侧有 ListView,右侧有详细片段,当您从 listView 中选择左侧的项目时,我希望它突出显示并保持突出显示(我这样做了部分)但是当我向下滚动到列表底部并返回时,由于视图的回收它忘记了突出显示,我该如何以不同的方式做到这一点?
这是我在 ListView 适配器中使用的代码:
protected LinearLayout selectedItem;
protected LinearLayout selectedItemPosition = -1;
.
.
.
@Override
public int getViewTypeCount() {
return 3; // I have 3 types of list Items, this part is working fine..
}
public int getItemViewType(int pos) {
// This part works fine too
}
.
.
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
.
.
.
if (selectedItemPosition == pos) {
holder.listItem.setSelected(true);
}
final LinearLayout listItem = holder.listItem;
holder.listItem.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (clickCallback != null) {
if (activateOnClick) {
if (selectedItemPosition > -1) {
selectedItem.setSelected(false);
}
selectedItemPosition = pos;
listItem.setSelected(true);
selectedItem = listItem;
}
clickCallback.callback(NewsItems.get(pos));
}
}
});
【问题讨论】: