-2

私は3つのアクティビティActiviytA、ActivityB、ActivityCを使用しています。ActivityAにはonActivtResult関数があります。b/wiでActivitycからの結果が必要です。

4

2 に答える 2

2

とても簡単です。また、ActivityB内にonActivityResultを実装して、それをアクティビティAに戻すこともできます。

if(RESULT_OK)
{
//GET data passedback
Intent returnIntent = new Intent();
returnIntent.putExtra(your extra data);
setResult(RESULT_OK, returnIntent);
finish()
}

これは、私がいつもホームボタンの実装を使用する方法です。

于 2013-01-25T17:09:10.690 に答える
0

よく理解できれば、ActivityAからActivityBを開き、次にActivityBからActivityCを開きます。ActivityAがActivityCから値を取得するようにします。

おそらく最も簡単な方法は、値を静的として保存し、クラスから直接読み取ることです。

StartActivityForResultを使用する場合(onActivityResultから結果を取得できるようにするため)、ActivityBにCから結果を受信させてから、ActivityBに結果をActivityAに渡すようにする必要があります。

ActivityAはResultsRecieverを実装します。次に、アクティビティBを開始し、呼び出し元のアクティビティ(ActivityA)を次のように取得します。

interface ResultsReciever{
    executeSomething(ArrayList values);
}

インターフェイスを実装するActivityAを宣言します。

public class ActivityA extends Activity implements ResultsReciever

アクティビティBのonStartメソッドで:

ResultsReciever caller = (ResultsReciever)getCallingActivity();

次に、ActivityBはStartActivityForResult()を使用してActivityCを開始します。ActivityBのonActivityResultで、次のように呼び出すことができます。

caller.executeSomething(whatever);
于 2013-01-25T17:21:09.187 に答える