【发布时间】:2016-10-24 03:11:35
【问题描述】:
我正在尝试获取一个检查值,但它没有显示该值,我已经在那里实现了自定义适配器我没有得到如何更新位置
我的代码是..
public Add_member_adapter(Context a, ArrayList<ItemsModel> d) {
context = a;
data = d;
itemChecked = new boolean[data.size()];
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
if (data.size() <= 0)
return 1;
return data.size();
}
public final Object getItem(int position) {
return data.get(getCount() - position - 1);
}
public final long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView Name, UserId_Fk;
CheckBox chkbox;
}
public View getView(final int position, View convertView, ViewGroup parent) {
Log.d("getview:", "position=" + position);
vi = convertView;
final ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.add_members_list_item, null);
holder = new ViewHolder();
holder.Name = (TextView) vi.findViewById(R.id.Name);
holder.UserId_Fk = (TextView) vi.findViewById(R.id.CusId_Fk);
holder.chkbox = (CheckBox) vi.findViewById(R.id.chkbox);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if (data.size() <= 0) {
vi.setVisibility(View.GONE);
} else {
tempValues = null;
tempValues = (ItemsModel) data.get(position);
holder.Name.setText(tempValues.getItemName().toString());
holder.UserId_Fk.setText(tempValues.getUserId_Fk().toString());
holder.chkbox.setChecked(false);
holder.chkbox.setChecked(itemChecked[position]);
holder.chkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
itemChecked[position] = isChecked;
}
});
}
return vi;
}
我在活动中声明另一个 List setOnItemClickListener
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
CheckBox checkbox = ((CheckBox) view.findViewById(R.id.chkbox));
String Name = list.getItemAtPosition(position).toString();
}
});
【问题讨论】:
-
你可以在复选框上使用 setOnCheckedChangeListener
-
你已经有了可用的位置,你想对 setOnClickListener 上那个位置的元素做一些操作吗?我建议你使用 setOnCheckedChangeListener 而不是点击监听器。这里到底是什么问题。能说清楚一点吗?
-
有文本视图和复选框。如果我选择第 4 个复选框,它应该给出第 4 个位置的文本。