如何在用户点击提交时使用复选框设置数据?我想获取isChecked()
我尝试使用的代码并不起作用。
myadapter
viewHoder.cx_select_invite.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Log.d("ChatGroupInviteAdap", "onClick position: " + position);
Log.d("ChatGroupInviteAdap", "onClick getFirstname: " + chatFriendsListModels.get(position).getFirstname());
id = chatFriendsListModels.get(position).getId();
ChatGroupInviteFragment.dataMember.add(id);
}
if (!isChecked) {
id = chatFriendsListModels.get(position).getId();
ChatGroupInviteFragment.dataMember.remove(id);
}
}
});
myFragment
用户点击完成后用户点击提交
tx_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "OnClick: " + ChatGroupInviteFragment.dataMember.size());
for (int i=0;i<ChatGroupInviteFragment.dataMember.size();i++){
Log.d(TAG, "OnClick2 : " + ChatGroupInviteFragment.dataMember.get(i));
}
}
});
用户unChecked时出现错误
致命的例外:主要 处理:xxx.xx.x,PID:20496 java.lang.IndexOutOfBoundsException:索引36无效,大小为3
36 is id unChecked
and 3 = size isChecked
如何设定?
答案 0 :(得分:1)
{{1}}
答案 1 :(得分:0)
问题似乎是您在List
循环中使用了两个不同的for
。
for (int i=0;i<ChatGroupInviteFragment.getListFriend.size();i++){
Log.d(TAG, "OnClick2 : " + ChatGroupInviteFragment.dataMember.get(i))
}
在这里,您正在迭代ChatGroupInviteFragment.getListFriend
列表,其大小似乎 36 。当您从ChatGroupInviteFragment.dataMember
获取数据时,其大小似乎 3 ,因此ArrayOutOfBoundException
。
您应该更改为:
for (int i=0;i<ChatGroupInviteFragment.dataMember.size() - 1;i++)
{
Log.d(TAG, "OnClick2 : " + ChatGroupInviteFragment.dataMember.get(i))
}
答案 2 :(得分:0)
getView():
viewHoder.cx_select_invite.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
int position= viewHolder.checkbox.getTag(); //Try to get position this way
id = chatFriendsListModels.get(position).getId();
ChatGroupInviteFragment.dataMember.add(id);
}
if (!isChecked) {
id = chatFriendsListModels.get(position).getId();
ChatGroupInviteFragment.dataMember.remove(id);
}
}
});
viewHolder.checkbox.setTag(position);