2010-05-05 5 views
1

У меня есть пользовательский диалог в приложении для Android. Я хочу иметь в этом диалоговом окне поле для выбора номера телефона из контактов. This example описывает такой фрагмент. Однако для этого примера создатель контакта создается внутри действия, и я не знаю, как это сделать, если у меня нет активности (в случае диалога)Контакты в диалоговом окне

ответ

1

Этот код решает проблему.

public class ContactFieldActivity extends Activity { 
private static final int PICK_NUMBER = 1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.field_contact); 

    Button btnContacts = (Button)findViewById(R.id.btn_contacts); 

    btnContacts.setOnClickListener(new OnClickListener() { 

     public void onClick(View arg0) { 
      Intent intent = new Intent(Intent.ACTION_PICK, Phones.CONTENT_URI); 
      startActivityForResult(intent, PICK_NUMBER); 
     }}); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    switch (requestCode) { 
     case (PICK_NUMBER): 
      if (resultCode == Activity.RESULT_OK) { 
       Uri contactData = data.getData(); 
       Cursor c = managedQuery(contactData, null, null, null, null); 
       if (c.moveToFirst()) { 
        String number = c.getString(c.getColumnIndexOrThrow(Phones.NUMBER)); 
        EditText edit = (EditText)findViewById(R.id.editNumber); 
        edit.setText(number); 
       } 
      } 
      break; 
    }  
} 

}

+0

Это будет работать только от активности или фрагмента. Вы не можете получить onActivityResult в диалоговом окне. – grebulon