別のアクティビティの上に起動される透明なアクティビティがあります。わかりやすくするために、透明なアクティビティが CommentsView と呼ばれ、ArticleView と呼ばれるアクティビティから起動されるとしましょう。
ArticleView アクティビティの下部には、その上にある CommentsView アクティビティを起動するボタンがあります。CommentsView アクティビティが起動されている間、そのボタンの機能を変更して、もう一度クリックすると、CommentsView アクティビティがキャンセルされ、ArticleView に戻るようにしたいと考えています。
どうすればこれを行うことができますか。CommentsView アクティビティ内のそのボタンに新しい onclicklistener を追加しようとしましたが、NullPointerException
(おそらくそのボタンがそのアクティビティに存在しないため) を取得します。commentsLaunched
また、ブーリアン変数を作成し、if ステートメントを使用して CommentsView (if commentsLaunched == false
) を起動するか、キャンセル (if ) することにより、ArticleView アクティビティ内でこれを処理しようとしましたcommentsLaunched == true
。ただし、この方法を試すと、コンパイラ エラーが発生しますThe final local variable commentClicked cannot be assigned, since it is defined in an enclosing type
。リスナー内で commentClicked 変数を定義できません。そうしないと、クリックごとに再初期化されるため、価値がなくなります。
目標を達成するにはどうすればよいですか?