Android 如何将ID标记为复选框

Android 如何将ID标记为复选框,android,checkbox,android-arrayadapter,Android,Checkbox,Android Arrayadapter,我创建了自定义适配器,如下所示 public class sendivitesadapter extends ArrayAdapter<Item>{ private Context context; private ArrayList<Item> items; private qrusers qrusers; private LayoutInflater vi; private String[] array; qrusers

我创建了自定义适配器,如下所示

public class sendivitesadapter extends ArrayAdapter<Item>{
    private Context context;
    private ArrayList<Item> items;
    private qrusers qrusers;
    private LayoutInflater vi;
    private String[] array;
    qrusers qrus;

    public sendivitesadapter(Context context,ArrayList<Item> items) {
        super(context, 0,items);

        this.context= context;
        this.qrusers =(qrusers) context;
        this.items = items;
        vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return super.getCount();
    }

    @Override
    public Item getItem(int position) {
        // TODO Auto-generated method stub
        return super.getItem(position);
    }

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

            final Item i = items.get(position);

            if (i != null) {
                if(i.isSection()){
                    SectionItem si = (SectionItem)i;
                    v = vi.inflate(R.layout.checkboxlist, null);

                    v.setOnClickListener(null);
                    v.setOnLongClickListener(null);
                    v.setLongClickable(false);

                    final TextView sectionView = (TextView) v.findViewById(R.id.list_item_section_text);
                    sectionView.setText(si.getTitle());

                }else{
                    sendItem ei = (sendItem)i;
                    v = vi.inflate(R.layout.checkboxlist, null);
                    final TextView title = (TextView)v.findViewById(R.id.contactname);
                    final TextView subtitle = (TextView)v.findViewById(R.id.companyname);
                    final CheckBox checkBox=(CheckBox)v.findViewById(R.id.checboxlist);
                    //checkBox.setTag(qrus.uid);



                //    Log.e("IDDDDDDD", text);
                    //checkBox.setTag("12");
                    checkBox.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            String s=(String) v.getTag();
                            Log.e("IDDDDDDDDDDDDDDDDDDDDDD", s);
                        }
                    });
                    if (title != null) 
                        title.setText(ei.contactname);
                    if(subtitle != null)
                        subtitle.setText(ei.companyname);

                }
            }
            return v;
        }   

}
@Override
    protected void onPostExecute(String result) {
        JSONArray jarray;

        try {
            jarray= new JSONArray(result);

            name= new String[jarray.length()];
            company=new String[jarray.length()];
            uid=new String[jarray.length()];
            for (int i=0;i<jarray.length();i++){



                JSONObject jobj = jarray.getJSONObject(i);
                name[i]=    jobj.getString("Name");
                company[i]=jobj.getString("Company");
                uid[i]=jobj.getString("UserID");
                System.out.println(uid[i]);



                items.add(new sendItem(name[i], company[i], qrcheckBox));

                sendadapter  = new sendivitesadapter(qrusers.this,items);
                listView.setAdapter(sendadapter);
公共类sendivitesadapter扩展了ArrayAdapter{
私人语境;
私有ArrayList项;
私人用户;
私人停车场6号;
私有字符串[]数组;
QRU;
公共sendivitesadapter(上下文、ArrayList项){
超级(上下文,0,项);
this.context=context;
this.qrusers=(qrusers)上下文;
这个项目=项目;
vi=(LayoutInflater)context.getSystemService(context.LAYOUT\u充气机\u服务);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回super.getCount();
}
@凌驾
公共项getItem(int位置){
//TODO自动生成的方法存根
返回super.getItem(位置);
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图v=转换视图;
最终项目i=项目。获取(位置);
如果(i!=null){
if(i.isSection()){
SectionItem si=(SectionItem)i;
v=vi.充气(R.布局.复选框列表,空);
v、 setOnClickListener(空);
v、 setOnLongClickListener(空);
v、 设置长点击(假);
最终文本视图部分视图=(文本视图)v.findViewById(R.id.list\u item\u section\u text);
sectionView.setText(si.getTitle());
}否则{
sendItem ei=(sendItem)i;
v=vi.充气(R.布局.复选框列表,空);
最终文本视图标题=(文本视图)v.findviewbyd(R.id.contactname);
最终文本视图字幕=(文本视图)v.findViewById(R.id.companyname);
最终复选框CheckBox=(复选框)v.findviewbyd(R.id.checboxlist);
//checkBox.setTag(qrus.uid);
//Log.e(“iddddd”,文本);
//复选框.setTag(“12”);
checkBox.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
字符串s=(字符串)v.getTag();
Log.e(“iddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd;
}
});
如果(标题!=null)
title.setText(即联系人姓名);
如果(副标题!=null)
副标题.setText(ei.companyname);
}
}
返回v;
}   
}
我将此适配器分配给listview的活动如下所示

public class sendivitesadapter extends ArrayAdapter<Item>{
    private Context context;
    private ArrayList<Item> items;
    private qrusers qrusers;
    private LayoutInflater vi;
    private String[] array;
    qrusers qrus;

    public sendivitesadapter(Context context,ArrayList<Item> items) {
        super(context, 0,items);

        this.context= context;
        this.qrusers =(qrusers) context;
        this.items = items;
        vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return super.getCount();
    }

    @Override
    public Item getItem(int position) {
        // TODO Auto-generated method stub
        return super.getItem(position);
    }

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

            final Item i = items.get(position);

            if (i != null) {
                if(i.isSection()){
                    SectionItem si = (SectionItem)i;
                    v = vi.inflate(R.layout.checkboxlist, null);

                    v.setOnClickListener(null);
                    v.setOnLongClickListener(null);
                    v.setLongClickable(false);

                    final TextView sectionView = (TextView) v.findViewById(R.id.list_item_section_text);
                    sectionView.setText(si.getTitle());

                }else{
                    sendItem ei = (sendItem)i;
                    v = vi.inflate(R.layout.checkboxlist, null);
                    final TextView title = (TextView)v.findViewById(R.id.contactname);
                    final TextView subtitle = (TextView)v.findViewById(R.id.companyname);
                    final CheckBox checkBox=(CheckBox)v.findViewById(R.id.checboxlist);
                    //checkBox.setTag(qrus.uid);



                //    Log.e("IDDDDDDD", text);
                    //checkBox.setTag("12");
                    checkBox.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            String s=(String) v.getTag();
                            Log.e("IDDDDDDDDDDDDDDDDDDDDDD", s);
                        }
                    });
                    if (title != null) 
                        title.setText(ei.contactname);
                    if(subtitle != null)
                        subtitle.setText(ei.companyname);

                }
            }
            return v;
        }   

}
@Override
    protected void onPostExecute(String result) {
        JSONArray jarray;

        try {
            jarray= new JSONArray(result);

            name= new String[jarray.length()];
            company=new String[jarray.length()];
            uid=new String[jarray.length()];
            for (int i=0;i<jarray.length();i++){



                JSONObject jobj = jarray.getJSONObject(i);
                name[i]=    jobj.getString("Name");
                company[i]=jobj.getString("Company");
                uid[i]=jobj.getString("UserID");
                System.out.println(uid[i]);



                items.add(new sendItem(name[i], company[i], qrcheckBox));

                sendadapter  = new sendivitesadapter(qrusers.this,items);
                listView.setAdapter(sendadapter);
@覆盖
受保护的void onPostExecute(字符串结果){
杰索纳雷·贾雷;
试一试{
jarray=新的JSONArray(结果);
name=新字符串[jarray.length()];
company=新字符串[jarray.length()];
uid=新字符串[jarray.length()];

对于(inti=0;i请尝试下面的自定义适配器

private class Demo_List_Adapter extends ArrayAdapter<Data_Model> {

        private ArrayList<Data_Model> inviteList;

        public Demo_List_Adapter(Context context, int textViewResourceId,
                ArrayList<Data_Model> inviteList) {
            super(context, textViewResourceId, inviteList);
            this.inviteList = new ArrayList<Data_Model>();
            this.inviteList.addAll(inviteList);
        }

        private class ViewHolder {
            TextView textView_FromPersonName;
            TextView textView_Subject;
            TextView textView_Body;
            TextView textView_Date;
            ImageView imageView_Star;
            CheckBox checkBox_MsgSelection;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            ViewHolder holder = null;
            Log.v("ConvertView", String.valueOf(position));

            if (convertView == null) {
                LayoutInflater vi = (LayoutInflater) getActivity()
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = vi.inflate(R.layout.list_row_message_inbox, null);

                holder = new ViewHolder();

                holder.textView_FromPersonName = (TextView) convertView
                        .findViewById(R.id.textView_FromPersonName);

                holder.textView_Subject = (TextView) convertView
                        .findViewById(R.id.textView_Subject);
                holder.textView_Body = (TextView) convertView
                        .findViewById(R.id.textView_Body);
                holder.textView_Date = (TextView) convertView
                        .findViewById(R.id.textView_Date);
                holder.imageView_Star = (ImageView) convertView
                        .findViewById(R.id.imageView_Star);

                holder.checkBox_MsgSelection = (CheckBox) convertView
                        .findViewById(R.id.checkBox_MsgSelection);
                convertView.setTag(holder);

                holder.checkBox_MsgSelection
                        .setOnClickListener(new View.OnClickListener() {
                            public void onClick(View v) {
                                CheckBox cb = (CheckBox) v;
                                Data_Model inviteModel = (Data_Model) cb
                                        .getTag();

                                inviteModel.setChecked(cb.isChecked());
                            }
                        });
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            Data_Model inviteModel = inviteList.get(position);
            if (inviteModel.getJa_MS_IsRead().equals("0"))
                convertView.setBackgroundColor(getActivity().getResources()
                        .getColor(R.color.gray_background));
            else
                convertView.setBackgroundColor(getActivity().getResources()
                        .getColor(R.color.white));

            holder.textView_FromPersonName.setText(inviteModel
                    .getJa_ME_FromPesrsonName());

            holder.textView_Subject.setText(inviteModel.getJa_ME_Subject());

            holder.textView_Body
                    .setText(stripHtml(inviteModel.getJa_ME_Body()));
            String s[] = inviteModel.getJa_ME_CreatedDate().split("\\s+");
            holder.textView_Date.setText(s[0]);
            if (inviteModel.getJa_MS_IsFlagged().trim().equalsIgnoreCase("1")) {
                holder.imageView_Star.setImageResource(R.drawable.star);
            } else {
                holder.imageView_Star.setImageResource(R.drawable.star_unsele);
            }
            holder.checkBox_MsgSelection.setTag(inviteModel);

            return convertView;

        }

    }
私有类演示\u列表\u适配器扩展了ArrayAdapter{
私有数组列表;
公共演示列表适配器(上下文上下文,int textViewResourceId,
ArrayList(列表){
超级(上下文、textViewResourceId、邀请列表);
this.inviteList=new ArrayList();
this.inviteList.addAll(inviteList);
}
私有类视窗持有者{
TextView TextView_FromPersonName;
TextView TextView_主题;
文本视图文本视图_体;
TextView TextView_日期;
ImageView ImageView_Star;
复选框\u MsgSelection;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
Log.v(“ConvertView”,String.valueOf(position));
if(convertView==null){
LayoutInflater vi=(LayoutInflater)getActivity()
.getSystemService(上下文布局\充气机\服务);
convertView=vi.充气(R.layout.list\u row\u message\u inbox,空);
holder=新的ViewHolder();
holder.textView_FromPersonName=(textView)convertView
.findViewById(R.id.textView_FromPersonName);
holder.textView_Subject=(textView)convertView
.findViewById(R.id.textView_主题);
holder.textView_Body=(textView)convertView
.findViewById(R.id.textView_Body);
holder.textView_Date=(textView)convertView
.findViewById(R.id.textView\u日期);
holder.imageView_星形=(imageView)convertView
.findviewbyd(R.id.imageView_-Star);
holder.checkBox\MsgSelection=(复选框)convertView
.findViewById(R.id.checkBox\MsgSelection);
convertView.setTag(支架);
holder.checkBox\MsgSelection
.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
复选框cb=(复选框)v;
数据模型=(数据模型)cb
.getTag();
inviteModel.setChecked(cb.isChecked());
}
});
}否则{
holder=(ViewHolder)convertView.getTag();
}
数据\u Model inviteModel=inviteList.get(位置);
if(inviteModel.getJa_MS_IsRead().equals(“0”))
convertView.setBackgroundColor(getActivity().getResources())
.getColor(R.color