Намеренная проблема, возвращаемое значение (Android) - PullRequest
5 голосов
/ 25 мая 2009

У меня есть приложение, которое открывает другой класс, используя намерение:

private void createRepository(){
        Intent j = new Intent(this, Repository.class);
        startActivityForResult(j, ACTIVITY_CREATE);
    }

В Repository.class у нас есть метод onActivityResult :

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();
            c =  managedQuery(contactData, null, null, null, null);
            if (c.moveToFirst()) {
              //String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
              num = c.getString(c.getColumnIndexOrThrow(People.NUMBER));

            }    

          }    
        break;
      }
      finish();
    }

Я не знаю, как вернуть значение num первому классу (который создает Repository.class). Спасибо за помощь. Микаэль

1 Ответ

4 голосов
/ 25 мая 2009

Я думаю, вы перепутали направления.

В классе репозитория вы должны setResult() перед вызовом финиша. Для дополнительных данных вы можете putExtra() данные.

Например, установите свой результат в функции onCreate().

В вашем вызывающем классе (тот, который запускает Repository) вы перезаписываете onActivityResult(int requestCode, int resultCode, Intent data) и получаете данные с data.getBundleExtra()

Справочник по Android для Intent и Activity содержит хорошие описания, а примеры также содержат образцы ReceiveResult и SendResult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...