Java 使用复选框从列表视图抓取联系人

Java 使用复选框从列表视图抓取联系人,java,android,android-listview,android-contacts,listadapter,Java,Android,Android Listview,Android Contacts,Listadapter,我创建了一个由两个文本视图和一个复选框组成的列表视图,联系人正在打印。但是,我无法使用复选框将它们返回到我的程序并添加到我的Person类中 public void populateListView(View view) { try { Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

我创建了一个由两个文本视图和一个复选框组成的列表视图,联系人正在打印。但是,我无法使用复选框将它们返回到我的程序并添加到我的Person类中

public void populateListView(View view) {
    try {
        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

        while (phones.moveToNext()) {
            String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            list.add(new Person(name, phoneNumber));
        }
        phones.close();
    }
    catch (Exception e){
        e.printStackTrace();
    }
    ArrayAdapter<Person> adapter = new myListAdapter();
    ListView listview2 = (ListView) findViewById(R.id.contactlistview);
    listview2.setAdapter(adapter);
}

public class myListAdapter extends ArrayAdapter<Person> {

    public myListAdapter() {
        super(MainActivity.this, R.layout.da_item, list);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(R.layout.da_item, parent, false);
        }
        // Find person wot work with
        Person currentperson = list.get(position);

        // Fill the view
        TextView nameboxview = (TextView)itemView.findViewById(R.id.NameView);
        nameboxview.setText(currentperson.getName());

        TextView numberboxview = (TextView)itemView.findViewById(R.id.NumberView);
        numberboxview.setText(currentperson.getPhone());



        return itemView;
    }
}

public void registerDoneClick(View view) {
    View itemView = view;
    ListView lister = (ListView) findViewById(R.id.contactlistview);
    long[] id = lister.getCheckedItemIds();
    TextView nameboxview = (TextView)itemView.findViewById(R.id.NameView);
    TextView numberboxview = (TextView)itemView.findViewById(R.id.NumberView);

    for(int i = 0; i < id.length; i++) {
        Person human = new Person(nameboxview.toString(), numberboxview.toString());
        persons.add(human);
        BetterDisplay(human);
    }
    setContentView(R.layout.activity_main);
}

public void grabthecontacts(View view) {
    setContentView(R.layout.selectcontacts);
    populateListView(view);
}
public void populateListView(视图){
试一试{
游标phones=getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,null,null);
while(phones.moveToNext()){
字符串名称=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.DISPLAY_name));
String phoneNumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
列表。添加(新人员(姓名、电话号码));
}
电话。关闭();
}
捕获(例外e){
e、 printStackTrace();
}
ArrayAdapter=新的myListAdapter();
ListView listview2=(ListView)findViewById(R.id.contactlistview);
listview2.setAdapter(适配器);
}
公共类myListAdapter扩展了ArrayAdapter{
公共myListAdapter(){
super(MainActivity.this,R.layout.da_项目,列表);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图项视图=转换视图;
如果(itemView==null){
itemView=GetLayoutFlater()。充气(R.layout.da_项,父项,false);
}
//找一个和你一起工作的人
Person currentperson=list.get(位置);
//填充视图
TextView nameboxview=(TextView)itemView.findViewById(R.id.NameView);
nameboxview.setText(currentperson.getName());
TextView numberboxview=(TextView)itemView.findViewById(R.id.NumberView);
numberboxview.setText(currentperson.getPhone());
返回项目视图;
}
}
公共无效注册表单击(查看){
视图项视图=视图;
ListView lister=(ListView)findViewById(R.id.contactlistview);
long[]id=lister.getCheckedItemIds();
TextView nameboxview=(TextView)itemView.findViewById(R.id.NameView);
TextView numberboxview=(TextView)itemView.findViewById(R.id.NumberView);
for(int i=0;i
我发现了一条与我做的事情非常相似的老线索,但他似乎使用了不同的方法发布结果,所以我完全困惑,因为它看起来与我写的完全不同。 我是Java和Android开发的新手。我想我可能完全不想返回值和格式,任何帮助都将不胜感激