안드로이드 연락처 앱에 있는 연락처를 선택한 것만 삭제하는 메소드(bulkDelete) 와 모든 연락처를 삭제하는 메소드다.
public class ContactHelper { public static void bulkDelete(ContentResolver contactHelper,long[] ids){ |
사용법
long[] ids = new long[]{16258,15265,15441,15542,16278};
ContactHelper.bulkDelete(getContentResolver(), ids);
위와 같이 수동으로 해당 CONTACT_ID를 직접 적어주고 테스트를 했다.
하지만 앱으로 구현한다면, CustomListView 에서 체크박스를 선택한 것만 삭제되도록 구현하면 될 것이다.
체크한 것만 ArrayList 에 담고 ArrayList 를 배열로 변환한 다음에
ContactHelper.bulkDelete(getContentResolver(), ids);
를 실행하면 될 것이다.
다만 IN 안에 들어가는 인수의 개수를 어느 범위까지 허용하는지 여부는 테스트를 안해봐서 장담할 수가 없다.
성명(display_name) 과 전화번호, CONTACT_ID 를 구할 수 있는 Cursor 메소드
// Display Name 이 포함된 모든 Cursor 반환 |
public class MainActivity extends AppCompatActivity { private ArrayList<String> contactRawContactID; private ArrayList<String> contactDataID; private ArrayList<String> contactNames; private ArrayList<String> contactNumbers; ArrayAdapter<String> adapter; ListView listView; private Cursor cursor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list); TextView tv_getCount = (TextView) findViewById(R.id.tv_getContactCount); tv_getCount.setText("총 " + String.valueOf(ContactHelper.getContactsTotalCount(getContentResolver())) + " 개"); contactRawContactID = new ArrayList<String>(); contactDataID = new ArrayList<String>(); contactNames = new ArrayList<String>(); contactNumbers = new ArrayList<String>(); cursor = ContactHelper.getContactCursorFromDisplayNameLIKE(getContentResolver(), ""); cursor.moveToFirst(); while (!cursor.isAfterLast()) { contactRawContactID.add(cursor.getString(0)); contactDataID.add(cursor.getString(1)); contactNames.add(cursor.getString(2)); contactNumbers.add(cursor.getString(3)); cursor.moveToNext(); } adapter = new MyAdapter(this, android.R.layout.simple_list_item_1, R.id.tvNameMain, contactNames); listView.setAdapter(adapter); } private class MyAdapter extends ArrayAdapter<String> { public MyAdapter(Context context, int resource, int textViewResourceId, ArrayList<String> conNames) { super(context, resource, textViewResourceId, conNames); } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = setList(position, parent); return row; } private View setList(final int position, ViewGroup parent) { LayoutInflater inf = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View row = inf.inflate(R.layout.liststyle, parent, false); TextView tvRawContactID = (TextView) row.findViewById(R.id.tvRawContactID); TextView tvDataID = (TextView) row.findViewById(R.id.tvDataID); TextView tvName = (TextView) row.findViewById(R.id.tvNameMain); TextView tvNumber = (TextView) row.findViewById(R.id.tvNumberMain); tvRawContactID.setText("RawContact_ID : " + contactRawContactID.get(position)); tvDataID.setText("Data_ID : " + contactDataID.get(position)); tvName.setText(contactNames.get(position)); tvNumber.setText("No: " + contactNumbers.get(position)); return row; } } } |
'안드로이드 > Android Contacts' 카테고리의 다른 글
안드로이드 연락처 (성명 + 휴대폰번호 기준으로 ContactId 구하기) (0) | 2017.06.22 |
---|---|
안드로이드 연락처 삭제(CONTACT_ID 기준) (0) | 2017.06.22 |
안드로이드 연락처 삭제(성명 + 전화번호) (0) | 2017.06.21 |
안드로이드 연락처 삭제 (성명 검색 연락처) (0) | 2017.06.21 |
안드로이드 연락처 ContactHelper 클래스 만들기 (0) | 2017.06.15 |