2012-04-28 5 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が あるが
    • 非推奨と言うん:

      今すぐ以下を持っていませんタイプContacts.Peopleは非推奨です

    • フィールドContacts.PeopleColumns.NAMEが では、型Contacts.Peopleこのライン上の

を廃止され

  • を撤廃:

    文字列名= c.getString(c.getColumnIndexOrThrow( People.NAME));

    この行の後にコードを追加する必要がありますが、追加する内容はわかりません。

  • 答えて

    0

    別のメソッドの内部でメソッドを定義しようとしています。それは動作しません。あなたの定義はActivityの方法になるようにonActivityResult()に移動してください。

    FWIW、here is a sample applicationは、Android 1.5-4.0.3で動作する連絡先を選択します。

    +0

    にこのコードを試してみてください? – Cole

    +0

    @Cole:はい。 'onActivityResult()' **はあなたの 'Activity'に実装する必要があります**。 – 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()); 
    

    のでrecipientContactためonClickListenerの外に移動しonactivityforresults

    関連する問題