Java 使用复选框从列表视图抓取联系人
我创建了一个由两个文本视图和一个复选框组成的列表视图,联系人正在打印。但是,我无法使用复选框将它们返回到我的程序并添加到我的Person类中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);
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开发的新手。我想我可能完全不想返回值和格式,任何帮助都将不胜感激