Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中如何将复选框与联系人列表链接?_Android_Listview_Checkbox_Contact - Fatal编程技术网

在android中如何将复选框与联系人列表链接?

在android中如何将复选框与联系人列表链接?,android,listview,checkbox,contact,Android,Listview,Checkbox,Contact,我想在android中显示带有多重选择复选框的联系人列表。我如何实现这一点。 任何人都可以提供任何示例或代码,这将非常有用。您需要创建自己的联系人列表 按照以下步骤获取联系人并自定义listview 希望这有帮助。:) 我终于得到了答案 public class ShowContactActivity extends Activity { ArrayList<String> listname; ArrayList<String> list_no;

我想在android中显示带有多重选择复选框的联系人列表。我如何实现这一点。
任何人都可以提供任何示例或代码,这将非常有用。

您需要创建自己的联系人列表

按照以下步骤获取联系人并自定义listview


希望这有帮助。:)

我终于得到了答案

public class ShowContactActivity extends Activity {

    ArrayList<String> listname;
    ArrayList<String> list_no;
    Context context;
    LayoutInflater inflater;
    ListView lView ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.show);

        lView = (ListView)findViewById(R.id.listView1);

        listname = new ArrayList<String>();
        list_no = new ArrayList<String>();


        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
            String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));

        String name = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {


            Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                    new String[]{id}, null);
                    while (pCur.moveToNext()) {
                    // Do something with phones
                    String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                    listname.add(name); // Here I collect the name of contact person and phone number. 
                    list_no.add(phoneNo);

                    } 
                    pCur.close();           
            }
         }      

       }
        lView.setAdapter(new Contact(this));                
    }

    class Contact extends BaseAdapter
    {
        Context myContext;      

        public Contact(ShowContactActivity contactActivity) {
            // TODO Auto-generated constructor stub
            this.myContext = contactActivity;
        }

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

        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }

        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            if (convertView == null) {

                inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                convertView = inflater.inflate(R.layout.checkbox, null);
                final ViewHolder viewHolder = new ViewHolder();
                viewHolder.text_name = (TextView) convertView.findViewById(R.id.name);
                viewHolder.checkBox = (CheckBox) convertView
                        .findViewById(R.id.checkBox);   

                viewHolder.id = (TextView)convertView.findViewById(R.id.id);

                convertView.setTag(viewHolder);
            }

            final ViewHolder holder = (ViewHolder) convertView.getTag();
            holder.text_name.setText(list_no.get(position));
            holder.id.setText(listname.get(position));


            if(holder != null)
            {
                holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        // TODO Auto-generated method stub
        // Here We can do our rest of stuff             
                        Toast.makeText(myContext, "Selected item is :-"  +buttonView.getId(), Toast.LENGTH_LONG).show();
                    }
                });
            }
            return convertView;              
        }       
    }    
    class ViewHolder 
    {
        TextView text_name,id;
        CheckBox checkBox;
        //EditText search;
    } }
公共类ShowContactActivity扩展活动{
ArrayList列表名;
阵列列表编号;
语境;
充气机;
列表视图lView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
lView=(ListView)findViewById(R.id.listView1);
listname=newarraylist();
list_no=new ArrayList();
ContentResolver cr=getContentResolver();
Cursor cur=cr.query(Contacts contract.Contacts.CONTENT\u URI,
空,空,空,空);
如果(cur.getCount()>0){
while(cur.moveToNext()){
字符串id=cur.getString(
cur.getColumnIndex(ContactsContract.Contacts.\u ID));
String name=cur.getString(
cur.getColumnIndex(Contacts.Contacts.DISPLAY_NAME));
if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0{
游标pCur=cr.query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,ContactsContract.CommonDataTypes.Phone.CONTACT\u ID+“=?”,
新字符串[]{id},null);
while(pCur.moveToNext()){
//用手机做点什么
String phoneNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
listname.add(name);//这里我收集联系人的姓名和电话号码。
列表号添加(电话号码);
} 
pCur.close();
}
}      
}
lView.setAdapter(新触点(此));
}
类联系人扩展了BaseAdapter
{
语境;
公共联系人(ShowContactActivity contactActivity){
//TODO自动生成的构造函数存根
this.myContext=联系人活动;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回listname.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回arg0;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回arg0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
if(convertView==null){
充气器=(LayoutFlater)myContext.getSystemService(Context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.checkbox,null);
最终ViewHolder ViewHolder=新的ViewHolder();
viewHolder.text_name=(TextView)convertView.findViewById(R.id.name);
viewHolder.checkBox=(复选框)convertView
.findViewById(R.id.checkBox);
viewHolder.id=(TextView)convertView.findViewById(R.id.id);
convertView.setTag(viewHolder);
}
final ViewHolder=(ViewHolder)convertView.getTag();
holder.text_name.setText(列表号get(位置));
holder.id.setText(listname.get(position));
if(holder!=null)
{
setOnCheckedChangeListener(新的OnCheckedChangeListener(){
检查更改后的公共无效(复合按钮视图,布尔值已检查){
//TODO自动生成的方法存根
//在这里我们可以做剩下的事情
Toast.makeText(myContext,“所选项目为:-“+buttonView.getId(),Toast.LENGTH_LONG.show();
}
});
}
返回视图;
}       
}    
类视图持有者
{
文本视图文本名称,id;
复选框;
//编辑文本搜索;
} }

谢谢你的重播。我从你的评论中得到了一些想法。