1. ホーム
  2. android

[解決済み] フラグメントから現在のアクティビティを終了させる

2022-10-03 20:21:27

質問

私はナビゲーションドロワーとして使用しているアクティビティ内のフラグメントを持っています。 これには、クリックすると新しいアクティビティを開始するボタンが含まれています(フラグメントからのstartActivityは、現在のアクティビティのstartActivityを呼び出すだけです)。

どうしても、新しいアクティビティを開始した後に現在のアクティビティを終了させる方法を見つけ出すことができないようです。

私はフラグメントでこのようなことを達成したいと思っています。

@Override
public void onClick(View view) {
    // TODO Auto-generated method stub
    if (view == mButtonShows) {
        Intent intent = new Intent(view.getContext(), MyNewActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
    } 
}

しかし、Fragment.classはfinish()を実装していないようです(startActivity(...)を実装しているように)。

2つ目のアクティビティを起動したときに、アクティビティのバックスタックをクリアしてほしいです。(新しいアクティビティから戻るを押すと、技術的にランチャーに戻されます)。

どのように解決するのですか?

フラグメントを扱うとき、代わりに this を使ったり、コンテキストを参照したりする代わりに、常に getActivity() . を呼び出す必要があります。

Java

getActivity().finish();

コトリン

activity.finish()

で、フラグメントからアクティビティを終了します。