2017-10-29 2 views
0

일반적인 데이터 종류를 여러 번 사용하면 안드로이드 스튜디오에서 인식하지 못하는 문제가 있습니다. 떨어져서 이름 지어지는 줄에 들어갈 때.모든 연락처를 목록보기로 만들려고합니까?

import android.app.ListActivity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.widget.ListView; 

import java.util.List; 

public class ContactSelect extends ListActivity { 
// google and find out what this stuff means later 
@Override 
public long getSelectedItemId() { 
    return super.getSelectedItemId(); 
} 

@Override 
public int getSelectedItemPosition() { 
    return super.getSelectedItemPosition(); 
} 
// creating the list view Object 
ListView Contacts; 
Cursor cursor1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contact_select); 
      cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, null, null, null); 
      startManagingCursor(cursor1); 

      String[] from = (ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone._ID); 

     } 

}의

+0

가능한 중복 : https://stackoverflow.com/questions/12562151/android-get-all-contacts. 이 스레드를 읽으십시오. 희망이 당신을 돕는다. – prdp89

+0

@hman '공통된 데이터 종류를 두 번 이상 사용하는 경우'의 의미를 설명 할 수 있습니까? 또한, onCreate에서 쿼리를 실행해서는 안되며, 더 많은 경우에는'startManagingCursor'를 전혀 사용하지 말아야합니다. https://stackoverflow.com/a/27208076/819355 – marmor

답변

3
public void getContacts() { 
    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
      null, null, null, null); 
    if (cur.getCount() > 0) { 
     while (cur.moveToNext()) { 
      String id = cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(
        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
       Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
         new String[]{id}, null); 
       while (pCur.moveToNext()) { 
        String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        contactList.add(new Contact(name, number)); 
       } 
       pCur.close(); 
      } 
     } 
    } 
    cur.close(); 
관련 문제