我最近开始使用Android和Java编程,所以请耐心等待.
我写了一个循环,在将新名称和电话号码添加到列表和隐藏数组之前,应该删除它之前找到的任何重复项.使用当前的方法,我仍然可以不断重复,当单击按钮再次添加所有相同的联系人时,我再次获得所有联系人.这让我觉得重复检查方法根本不能正常工作,但我没有得到任何帮助
我有两个我在外面创建的列表数组:
Listphnnumbers = new ArrayList (); List names = new ArrayList ();
这是添加联系人方法:
public void AddAllContacts(View view) { try { Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while (phones.moveToNext()) { String linesp = System.getProperty("line.separator"); TextView quantityTextView = (TextView) findViewById(R.id.numbersview); String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); duplicatecheck(name, phoneNumber); addthistothelist(name, phoneNumber); } phones.close(); } catch (Exception e){ e.printStackTrace(); } }
这是重复检查方法:
public void duplicatecheck(String name,String phoneNumber) { for (int i=0;i这是在检查重复项并删除后调用的方法,下一个方法是添加数字和名称的方法:
public void addthistothelist(String nameofperson,String NumberOfPerson) { String linesp = System.getProperty("line.separator"); TextView quantityTextView = (TextView) findViewById(R.id.numbersview); String textpost = quantityTextView.getText().toString(); NumberOfPerson = NumberOfPerson.replaceAll("[^0-9]", ""); if(NumberOfPerson.contains("+1")) { phnnumbers.add(NumberOfPerson); names.add(nameofperson); NumberOfContactsAdded++; quantityTextView.append(linesp+nameofperson+" " +NumberOfPerson); } else { NumberOfPerson= "+1"+NumberOfPerson; phnnumbers.add(NumberOfPerson); names.add(nameofperson); NumberOfContactsAdded++; quantityTextView.append(linesp+nameofperson+" " +NumberOfPerson); } }我真的迷失了我可能做错的事.我会尝试清理这些代码,但它甚至无法正常工作以便我清理它.