Java Android-联系人列表(重复号码)
我的代码显示联系人列表。这是我在选项卡式活动中的片段:Java Android-联系人列表(重复号码),java,android,Java,Android,我的代码显示联系人列表。这是我在选项卡式活动中的片段: public class Tab2Contact extends Fragment { ListView listViewContacts; private static final int PERMISSIONS_REQUEST_READ_CONTACTS=100; ArrayList contacts; Cursor c; @Override public View onCreateV
public class Tab2Contact extends Fragment {
ListView listViewContacts;
private static final int PERMISSIONS_REQUEST_READ_CONTACTS=100;
ArrayList contacts;
Cursor c;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab2_contact, container, false);
listViewContacts=(ListView)rootView.findViewById(R.id.listViewContacts);
int permissionCheck= ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS);
if (permissionCheck== PackageManager.PERMISSION_GRANTED){
showContacts();
}else{
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.READ_CONTACTS},
PERMISSIONS_REQUEST_READ_CONTACTS);
}
ArrayAdapter adapter=new ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1,contacts);
listViewContacts.setAdapter(adapter);
return rootView;
}
private void showContacts(){
c = getActivity().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,ContactsContract.Contacts.DISPLAY_NAME+" ASC ");
contacts=new ArrayList();
while (c.moveToNext()){
String contactName=c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phNumber=c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contacts.add(contactName+"\n"+phNumber);
}
c.close();
}
}
我有两个问题:
我会使用集合或地图,并将phNumber作为键。当您迭代以获取联系人时:
HashMap<String, String> phNumberMap = new HashMap<>();
while (c.moveToNext()){
phNumberMap.put(phNumber, contactName);
}
HashMap phNumberMap=newhashmap();
while(c.moveToNext()){
phNumberMap.put(phNumber,contactName);
}
然后再次迭代HashMap,从HashMap创建两个单独的数组 我可以将它分为两个数组,只需要重复的解决方案请编辑您的问题以显示您的增强功能,然后澄清单个问题。使用HashSet而不是ArrayList