web-dev-qa-db-ja.com

子アクティビティから親アクティビティを完了する方法

私はAndroid開発に不慣れです。

4つのボタンがあるメインアクティビティ(-> A)を作成しました。 4つのボタンの1つはEXITボタンです。

EXITボタンをクリックして、別のアクティビティ(-> B)を開始します。これにより、「A」アクティビティからのインテントを介して「B」アクティビティが開きます。

アクティビティ「B」に含まれる-終了しますか?はい-ボタン&いいえ-ボタン。

私がfinish()を与えると、ボタンのonclick-'B'Activityを終了します。 『B』 『A』を仕上げたい。

私もA.finish()を試しました->これは認識されず、構文/意味エラーが発生します。

ここで助けていただければ幸いです。

PS:私はAndroid-2.2バージョンの電話を使用していますが、ActivityManagerを使用してこれを解決したくありません。

23
sudhishkr

で子供の活動を開始してみてください

 startActivityForResult(intent, REQUEST_EXIT);

子供の活動中

case R.id.quit:
     setResult(RESULT_OK, null);
     finish();

親の活動で

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

    if (requestCode == REQUEST_EXIT) {
         if (resultCode == RESULT_OK) {
            this.finish();

         }
     }
}
52
Georgy Gobozov

開始アクティビティBにはstartActivityForResult() in アクティビティAを使用し、AだけでonActivityResult()を使用finish()アクティビティA.ボタンを押しただけのアクティビティBでfinish()アクティビティB

6
user370305

次のような子アクティビティから親アクティビティを終了できます...

親に...

 startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT);

また、ParentのOnActivityForResult(...)メソッドをオーバーライドします。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == ACTIVITY_CONSTANT)
    {
        finish();
    }
}

子アクティビティでfinish()を呼び出すと、親も終了します。

5
Santhosh