2012-04-28 2 views
0

Я видел тонну сообщений в Интернете, которые показывают «как открыть список контактов Android», но они устарели, а некоторые из них даже не работают.Проблемы с попыткой открыть список контактов?

EDIT:

Теперь есть следующая:

public class MessagePreview extends Activity { 
final int PICK_CONTACT = 3; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button recipientContact = (Button) findViewById(R.id.buttonAddRecipient); 

    recipientContact.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(Intent.ACTION_PICK, 
        ContactsContract.Contacts.CONTENT_URI); 
      startActivityForResult(intent, PICK_CONTACT); 
     } 
    }); 

} 

@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 

    switch (reqCode) { 
    case (PICK_CONTACT): 
     if (resultCode == Activity.RESULT_OK) { 
      Uri contactData = data.getData(); 
      Cursor c = managedQuery(contactData, null, null, null, null); 
      if (c.moveToFirst()) { 
       String name = c.getString(c 
         .getColumnIndexOrThrow(People.NAME)); 
       // TODO Whatever you want to do with the selected contact 
       // name. 
      } 
     } 
     break; 
    } 
} 
} 

без ошибок, но это не сказать

  • Поле Contacts.PeopleColumns.NAME является осуждается
    • The тип Contacts.People устарел
    • Поле Contacts.PeopleColumns.NAME является устаревшим
    • Тип Contacts.People является устаревшим

на этой линии:

String Name = c.getString (c.getColumnIndexOrThrow (People.NAME));

Мне нужно добавить еще код после этой строки, но я не знаю, что добавить.

ответ

0

Вы пытаетесь определить метод внутри другого метода. Это не работает. Пожалуйста, переместите свое определение onActivityResult() как метод на Activity.

FWIW, here is a sample application, который выбирает контакт, который работает на Android 1.5-4.0.3.

+0

Так переместить его за пределы onClickListener для recipientContact? – Cole

+0

@Cole: Да. 'onActivityResult()' ** должен быть ** реализован в вашей 'Деятельности'. – CommonsWare

+0

Отредактированный OP с новым кодом/ошибкой – Cole

0
String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
        ContactsContract.CommonDataKinds.Phone.NUMBER }; 
Cursor names = getContentResolver().query(contactData , projection, null, null, null); 
int indexName = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); 
int indexNumber = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 
names.moveToFirst(); 
do { 
    String name = names.getString(indexName); 
    String number = names.getString(indexNumber); 
} while (names.moveToNext()); 

попробовать этот код на onactivityforresults

Смежные вопросы