Получение намерений от двух разных видов деятельности - PullRequest
0 голосов
/ 29 марта 2012

Я довольно новичок на Android и не уверен насчет намерений.

Если у меня есть 3 действия, AB и C, и действие A должно получать пакеты от B и C в разное время (например, переходить от B к A или от C к A), как мне поступить? что?

Надеюсь, этот вопрос не слишком расплывчатый ...

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Вы можете позвонить в Занятие A из Занятия B или C в любое время. Вы просто создаете новый Намерение, отправляя ему свой текущий контекст и Активность, которую хотите вызвать. E.g.:

Intent i = новый Intent (это, ActivityB.class);

Тогда начните свое намерение, позвонив по номеру:

startActivity (я);

Имейте в виду, вы должны убедиться, что все ваши действия определены в вашем манифесте.

0 голосов
/ 29 марта 2012

Чтобы начать действие B из действия A, вы можете позвонить

    final int REQ_STARTB = 101; // anything non-zero
    startActivityForResult(REQ_STARTB, new Intent(A.this, B.class)). 
    //Similar for C.

Затем, когда у вас есть данные из B и вы хотите передать их обратно A, вы можете сделать из B:

Intent I = new Intent()
I.putExtra("MyStringData", stringYouWantToReturn);
//and similar for other types 
setResult(RESULT_OK);
finish();

Так что это возвращается к А, и в А у вас будет

public onActivityResult(int req, int res, Intent data) {
    if(req == REQ_STARTB) {
        if(res == RESULT_OK) {
            String dataFromB = data.getStringExtra("MyStringData");
        }
     }
}
...