adapter中包含checkbox,当选中数据后怎么得到选中的数据? 5C

package com.app.FragmentAdapter;

import android.content.Context;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

import com.addresslist.R;
import com.app.bean.ContactsBean;

;import java.util.ArrayList;
import java.util.List;

/**

  • Created by dell-1 on 2018/1/9. */

public class AddContactFromAddressAdapter extends BaseAdapter {
private List contacts;
private ArrayList contactsList=new ArrayList<>();

private ArrayList selectedList;
;
private LayoutInflater inflater;



public AddContactFromAddressAdapter(Context context, List<ContactsBean> contacts) {
    this.contacts = contacts;
    inflater = LayoutInflater.from(context);
    selectedList=new ArrayList();


}

@Override
public int getCount() {
    return contacts.size();
}

@Override
public Object getItem(int position) {
    return contacts.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.contacts_cell, null);
        holder = new ViewHolder();
        holder.sort_key = convertView.findViewById(R.id.tv_sort_key);
        holder.mPhones = convertView.findViewById(R.id.tv_phones);
        holder.checkBoxSelected = convertView.findViewById(R.id.cb_selected);
        convertView.setTag(holder);

    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.sort_key.setText(contacts.get(position).getFirstLetterOfName());
    holder.mPhones.setText(contacts.get(position).getContactsName() + ":"
            + contacts.get(position).getPhoneNumber());
    if (contacts.get(position).getSelectedContact()) {
        holder.checkBoxSelected.setChecked(true);
    } else {
        holder.checkBoxSelected.setChecked(false);
    }
    holder.checkBoxSelected.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (contacts.get(position).getSelectedContact()) {
                contacts.get(position).setSelectedContact(false);
                selectedList.remove(contacts.get(position));

            } else {
                contacts.get(position).setSelectedContact(true);
                selectedList.add(contacts.get(position));


            }

        }
    });

    return convertView;
}

private final class ViewHolder {
    public TextView sort_key;
    public TextView mPhones;
    public CheckBox checkBoxSelected;
}

}

3个回答

holder.checkBoxSelected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (contacts.get(position).getSelectedContact()) {
contacts.get(position).setSelectedContact(false);
selectedList.remove(contacts.get(position));

        } else {
            contacts.get(position).setSelectedContact(true);
            selectedList.add(contacts.get(position));


        }

    }

solution: 将点击事件中的view 强转成checkbox再获取显示的文本

KuangAnGuo
AnGuoK 回复sinat_40613070: 没明白你说的什么意思?已经保存了position,那么怎么通过相应的position去遍历实体中的数据呢?
一年多之前 回复

想要获取所有的已经选中的数据,在adapter 里面提供一个方法返回 selectedList 供外面调用就行了

u013894546
Yunc2 回复KuangAnGuo: 另外看一下 holder.checkBoxSelected.setOnClickListener 有没有进
一年多之前 回复
u013894546
Yunc2 回复KuangAnGuo: 那就改一下不返回contactsList,直接遍历contacts 的getSelectedContact数据返回
一年多之前 回复
KuangAnGuo
AnGuoK 有试过,这是在adapter中写的方法public ArrayList getCheckBox() { return contactsList; }在外面调用还是获取不到数据,求大神指导指导
一年多之前 回复

我看你的代码 感觉没问题 估计是你在别的地方操作了数据导致清空了选择
你可以试试下面方法
list getSelectContact(){
list select = new arraylist();
for(int i=0,size=contacts.size();size>i;i++){
if(contacts.get(i).getSelectedContact()){
select.add(contacts.get(i));
}
}
return select
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
listview中怎么得到选中的多行数据
选中了listview中的多行数据,怎样才能得到它们,不要说遍历所有的记录噢
自定义adapter checkbox选中处理
自定义adapter checkbox选中处理,处理多选问题
怎么样删除checkbox选中的数据?
代码在下面..........发了好几遍发不上来
得到选中的checkbox和radio
  找到某个div下的,名字为chkds的选中的checkbox var chks = $('#defaultSchemeTimes input:checkbox[name=&quot;chkds&quot;]:checked');   得到名字为gwmode的选中的radio的值 var val = $('input:radio[name=&quot;gwmode&quot;]:checked').val();   ...
得到选中checkbox的值
rn rn rn rn rn rn rn rn rn rn rn rn rn rnrn rnrn在后台 .cs 文件中 怎样得到它的值
checkbox选中后怎么消除
画面上有一个复选框,默认选中,点击复选框后,回跳出一个提示框,rn如果我点击提示框的取消按钮,希望原来选中的复选框还是选中的,rn如果我点击确定按钮,复选框的状态才发生变化。rn用jquery怎么实现?
怎么在winform得到datagrid里的checkbox选中的行的数据
在datagrid里加了checkbox然后要得到这行的数据,把这些数据放进int1和int2两个参数里。我该怎么做?rnrn我得到选中行的语句是:Dim rows as datarow() = ds1.tables("table1").select("Bool = 1")rnrn请问我接下来该怎么写啊?ds1是我dataset的名字。。
ext 得到选中的行数据
var record=Ext.getCmp('orderPanelId').getSelectionModel().getSelected(); if(Ext.getCmp('orderPanelId').getSelectionModel().getCount()&amp;gt;0){ Ext.Ajax.request({ url:'/govt_stockV1.0/organiseManag...
checkbox选中与不选中后的显示问题
我要实现这样的功能:rn 当我选中checkbox复选框的时候(即打个钩),在这个复选框后面显示一个button按钮,当我把复选框中的“钩”取消的时候,复选框后面的那得按钮就不显示rn如此反复rn 请给些代码rn我希望这样实现:rnrnrnrn rnrn
怎么保持checkbox选中?
rn rn 用户名:rn rn 密 码:rn rn rnrnrn rnrn rn rnrnrnrn我点击登录后,返回LoginUser.aspx处理页面同时也刷新了当前页面,我怎么保持选中呢?rnrncookies?js 请各位大哥写清楚,小弟第一次弄这个。谢谢
jquery得到checkbox选中的个数
var count = $(&quot;input[name='box']:checked&quot;).length; &amp;lt;input name='box'&amp;gt; &amp;lt;input name='box'&amp;gt; &amp;lt;input name='box'&amp;gt;    
request.getParameter得到选中的checkbox的值
表单中如下rnrnrnrnrn第2张页面要得到第一张页面中checkbox选中的值rn怎么写request.getParameter?rnrn
得到被选中checkbox的值
function check() rn rn var aa=document.getElementsByName("sectionIds"); rn for(var i=0; irn rn网页游戏 rn rnxxxx rn rnxxx rn rnxxx rn rnxxx rn rnrn[/code]
怎样才能得到DataGrid中选中的CheckBox的值
左边是CheckBox,右边是文件列表,需要在选中的时候取出文件列表中的文件名称rnrn代码:rn rn...rnrn rn rn rn rn rn rn rn rn rn...
TreeView 中 CheckBox 的选中
小弟我有一个这样的问题.我有一个TreeView控件.其中已经让CheckBox可视化.并且实现了级联选择.我想实现这样一个东西.我有一组(ID),如(1,2,3,12,13,21,26).我要让TreeView显示的时候.它其中的CheckBox根据ID被选中.而ID不存在的则CheckBox空白不被勾选.不知道如何实现其各位大侠指教.如果答的详细另有Q币相送
struts2中action得到选中的checkbox的值
注意:action为我们取到得数组格式为[val1,  val2,   val3]的形式,逗号后边带个空格,所以用split拆分字符串的时候参数要传入&quot;, &quot;而不是&quot;,&quot;,否则在遍历该数组的时候,只有val1的值取出是正确的。...
当TreeView的节点我设为CheckBox=True后。怎么得到CheckBox是否选中。
1、当TreeView的子和跟节点CheckBox=True后。怎么得到CheckBox是否选中。rnrn2、当一根节点选中后,能不能让程序把所有那个根节点的子节点自动选中。rnrnrnrn随祝新年快乐。。。rnrnrnrn
checkbox选中
rnrn rn rnrnrn rnrnrn rnrnrnrnrnrn rnrnrnrn在div中插入的那个checkbox在ie9或以下里面好像能选中,在其它浏览器里怎么让它选中
checkbox 选中
CS:rnstring[] str = rs["id"].ToString.Split(',');rnrnASPX:rn是一串生成的 rnrn如何让前台生成页面的时候根据 str[] 判断 checkbox 是否被选中?rnrnrn注:rs["id"] 跟 <%#Eval("id")%> 是同一个表rnrnrnrnrn
layui数据表格checkbox编辑的时候选中
在编辑的时候,比如说一次活动,有很多参与人,编辑这次活动的时候,参与人以弹窗的形式以layui table展示,这需要参与人勾选中,即所谓的数据回显。 以下代码实现了编辑的时候回显,如果是新增的时候,ids为空数组,如果是编辑,则进行初始化,编辑的思路主要是js模拟复选框的click事件,配合layui监听复选框的方法,把需要的数据进行全局缓存存储,实例中主要靠 var ids =new ...
checkbox全选,选中数据传到后台
工程从数据库中获取相关信息,通过<s:iterator>列表显示所有数据,实现了checkbox的全选,并将选中部分的数据传入后台,进行操作。
获取checkbox选中的值和设置checkbox选中
获取checkbox选中的值&amp;lt;input name=&quot;RefAnswer&quot; type=&quot;checkbox&quot; value=&quot;B&quot; /&amp;gt;var arr = new Array();$('input[name=&quot;RefAnswer&quot;]:checked').each(function (i) {    arr[i] = $(this).val(); });var vals = arr.join...
后台数据控制前端checkbox(是否选中)
网上有很多关于前端checkbox数据怎样传送给后台(action)的实例,但是很少有通过后台数据来控制前端checkbox的是否选中的例子,最近项目中就碰到这个问题 解决办法: 1、后台编写异步方法,获取value集合 public String returnCheckbox(){ //获取value集合 List checklauser =
checkbox选中数据入库读出问题
我为了提供可以复选的功能,从一个数据库中读取数据(这里数据记录为少量)代码生成checkbox,请问如何把选中的记录存到另外一个数据库表中,并且能够读出刚才存到数据库表中的这些数据,就是按照刚才选中的再次生成checkbox,选中的显示选中,未选的显示未选呢,多谢了,急等!!
怎么获取选中的图片数据?
使用以下代码Intent跳转到系统的自带图片浏览器,但怎么获取选中的图片数据显示到一个ImageView上?请大家帮忙解答。rn[code=Java]rnIntent intent = new Intent(); rn /* 开启Pictures画面Type设定为image */ rn intent.setType("image/*"); rn /* 使用Intent.ACTION_GET_CONTENT这个Action */ rn intent.setAction(Intent.ACTION_GET_CONTENT); rn /* 取得相片后返回本画面 */ rn startActivityForResult(intent,1); rn[/code]
GridView插入CheckBox选中的数据到SQL数据库
在GridView1有CheckBox1控件,点击按钮Button1把勾选的数据插入到SQL数据库中
layui 数据表格获取选中的checkbox
table.on('checkbox(member)', function(obj){               var checkStatus = table.checkStatus('layui_table_member');               var data = checkStatus.data;               console.log(data);        ...
checkbox多项选中及取消选中
checkbox多项选中及取消选中
checkbox选中后放入文本框
checkbox选中放入文本框 checkbox 选中后值放入div &amp;lt;input type=&quot;checkbox&quot; value=&quot;中国&quot; onclick=&quot;checkboxOnclick(this)&quot;&amp;gt;中国 &amp;lt;input type=&quot;checkbox&quot; value=&quot;北京&quot; onclick=&quot;checkboxOnclick(this)&quot;&amp;g
怎么可以得到在DBGrid中选中的多行数据!
ShowMessage(DBGrid1.DataSource.DataSet.FieldByName('field_01').AsString);rnorrn ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString);rnrn上面可以得到当前选中的数据!rn怎么可以得到多选的那??
Adapter增加选中状态
import java.util.List; import java.util.Map; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget....
数据窗口选中数据求和
如图:rn[img=http://hi.csdn.net/attachment/201106/10/9961176_1307692860cagC.jpg][/img]要求实现:图中某一列的数据,选中这一列当中的几行数据(鼠标左键拖动,选中时是黑色的)时,会弹出提示出来,显示出的数据是选中的数据的和。rn谁有例子或思路给我参考下。rn
checkbox如何选中后能提交这一行的数据
[code=HTML] rn rn rn rn rnrn 数据1rnrn rn rn rnrnrn[/code]rn我该如何选中那个checkbox 就提交那行数据 或者在后台判断也行。
DataGrid 中CheckBox 选中后的问题
rn HTML中部分代码(DataGrid中的):rnrn rn rn rn rn rn rnrnrn 后台部分代码:rnrn protected void btnSelect_Click(object sender, EventArgs e)rn rn foreach (DataGridItem dg1 in DataGrid1.Items)rn rn CheckBox cb = (CheckBox)dg1.FindControl("chkselect");rn if (cb.Checked)rn rn //string cid = dg1.Cells[2].Text.ToString();rn //Response.Write(Functions.Alert(cid));rn rn rn rn rnrn 不管选没选 cb.Checked总为false...以前这样做都可以的,不知今天怎么,真不知道哪出错了..rn 哪些位置可能出错...高手说下..谢谢
取Table中选中的数据
我的界面是用SWT设计的,table中现在又多形数据,我选中了其中的两行,选中后,现在想得到我选中这两行的数据或者是选中这两行数据的某一列的值,该怎么做?rntable的设计:rn table = new Table(composite, SWT.BORDER |SWT.MULTI| SWT.FULL_SELECTION);rn table.setBounds(0, 69, 687, 283);rn table.setHeaderVisible(true);rn table.setLinesVisible(false);rn
一个GridView中的CheckBox选中后的问题?
有一个GridView有两个列分别绑定两个控件,Cells[0]:checkbox, Cells[1]:TextBox,我想让某一行的checkbox选中之后,该行的TextBox就为可读,rn我是用JavaScript写了ReaderOnly(vl)过程,rn在.CS文件中rnprotected void gvw_DataBound(object sender, EventArgs e)rnrn for (int i = 0; i < gvw.Rows.Count; i++)rn rn CheckBox chkSelect = gvw.Rows[i].Cells[0].FindControl("chkSelect") as CheckBox;rn chkSelect.Attributes.Add("OnClick", "ReaderOnly(this);");rn rnrn为什么在最后一行老是会出现"未将对象引用设置到对象的实例"的错误呢?
如何得到datagridview中所选中的多行数据?
各位大哥大姐,rn请教一下:如何得到datagridview中所选中的多行数据?rn我想在按住ctrl+或shift键的同时去选择我想要的行记录(多条),想得到这些行的数据。rn谢谢!
JS 怎么控制 checkbox 选中
[code=JScript] [/code]rn以上代码怎么写?rn[code=HTML]rnrnrn以上不固定,可多可少但id都为checkrn1rn2rn3rn4rn5rn[/code]
怎么区别新选中的checkbox
在有选中的情况下,怎么判断有新选中的项,首先申明 页面还有其他input型空间。rn这个就是属于checkbox
checkbox的选中表达式怎么写?
在数据窗口中,有个静态文本t1,有个checkbox C1,现在想要C1选中的时候,才把t1显示出来,rnt1 属性里面的visible express怎么写?rn我写成if(c1.checked=true,1,0),有错误:expecting true/false expression.rn?
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池