【发布时间】:2016-07-06 23:34:26
【问题描述】:
我正在按照教程here 制作复选框列表,我的适配器如下所示:
private class ViewHolder{
CheckBox name;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater settingInflater = LayoutInflater.from(getContext());
if (convertView == null) {
convertView = settingInflater.inflate(R.layout.custom_row, parent, false);
holder = new ViewHolder();
holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
holder.name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
CustomCheckbox theCheckbox = (CustomCheckbox) cb.getTag();
Toast.makeText(getContext(),
"Clicked on Checkbox: " + cb.getText(),
Toast.LENGTH_SHORT).show();
Log.e(TAG,Integer.toString(position));
});
}else{
holder = (ViewHolder)convertView.getTag();
}
}
当我开始这个视图时,我的屏幕上大约有 15 个条目,但是当我向下滚动并选择第 16 个复选框时,它的位置再次变回零,并且以下条目相应地变为 1, 2 ,3....等我如何实现持有人,以便我可以获得每个复选框的正确位置编号?
谢谢!!
【问题讨论】:
-
你需要保持在列表中被选中的位置