1. ホーム
  2. android

[解決済み] Activityコンテキストの外からstartActivity()を呼び出す

2022-03-23 02:45:37

質問

を実装しています。 ListView をAndroidアプリケーションに追加しました。 この ListView のカスタムサブクラスを使用しています。 ArrayAdapter クラスがあります。 オーバーライドされた ArrayAdapter.getView(...) メソッドに OnClickListener . その中で onClick メソッドの OnClickListener 新しいアクティビティを起動したいのですが、どうすればいいですか? 例外が発生しました。

Calling startActivity() from outside of an Activity  context requires the  
FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

どうすれば Context その ListView (現在の Activity の下で働いているのでしょうか?

解決方法は?

どちらか

  • アダプタのコンストラクタでContextオブジェクトをキャッシュする。
  • ビューから取得します。

最後の手段としても

  • FLAG_ACTIVITY_NEW_TASKフラグをインテントに追加します。

_

myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

編集 - フラグを設定することは、イベントと履歴スタックの通常のフローを妨げるので、私は避けたいと思います。