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