У меня есть действие, которое позволяет пользователю выбрать номер телефона. Естественно, я хотел бы, чтобы мой класс помнил идентификатор выбранного контакта, таким образом, я сохраняю это в поле класса. Однако, когда метод onActivityResult возвраты, моя переменная класса сбрасывается. Вот то, что я пытаюсь сделать:
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
...
public void onActivityResult(int reqCode, int resultCode, Intent intent){
super.onActivityResult(reqCode, resultCode, intent);
switch(reqCode){
case(PICK_CONTACT):
if(resultCode == Activity.RESULT_OK){
Uri contactData = intent.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if(c.moveToFirst()){
contactName = c.getString(c.getColumnIndexOrThrow(People.NAME));
contactId = c.getInt(c.getColumnIndexOrThrow(People._ID));
break;
Когда я установил точку останова в рамках этого метода, значений для contactName и связался, как я ожидаю, однако после того как метод возвращается, значения так или иначе сбрасываются к их значениям по умолчанию. Очевидно я пропускаю что-то, но я не уверен, что я делаю неправильно или забываю.
Спасибо!
Iva