2017-01-25 1 views
0

私はonBackPressed()を書き直そうとしましたが、ジオーテッドコードには存在しません。したがって、オーバーライドされたonBackPressed()のテキストは無視されます。@Overrideはアンドロイドアノテーションで動作しませんか?

@EActivity(R.layout.activity_before_test_warning) 
public class BeforeTestWarningActivity extends AppCompatActivity { 
    @Override 
    public void onBackPressed() { 
     Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show(); 
     finish(); 
    } 
} 

このコードでは、「戻る」矢印は正常に動作しています。すなわち、新しい親アクティビティを作成し、トーストしません。どうして?

ユーザーが移動をさらに確認しなかった場合は、以前のページに戻りますが、何らかの間違いを編集するために「戻る」を押すだけです。

+0

現在実行中のアクティビティで、 'onBackPressed()'をオーバーライドする必要があります。 –

+0

[onBackPressed()メソッドがAppCompatActivityでトリガーされていない可能性があります](http://stackoverflow.com/questions/31681141/onbackpressed-method-not-triggered-in-appcompatactivity) –

+0

上記のコードは正常ですが、 ActivityName。これだけではなく、makeTextメソッドに入ります。私は '私の私は保存され、再作成されません、以前の活動に戻ったときに、「キャンセル」ボタンをクリックすることにより、同じ振る舞いを取得するために)'(onBackPressedオーバーライドする必要が –

答えて

0

は、どのような方法で@OverrideまたはonBackPressed()を変更しない()

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show(); 
     finish(); 
} 
+0

ありがとうございますが、スタンドアーツの動作を使用したくありません。前の活動に戻る必要はありません。 – Eugene

+0

これは、onBackPressedをこのようにオーバーライドすると(superを呼び出すことによってのみ)アクティビティが以前のアクティビティに戻る場合です。 super.onBackPressed();の後にコードを記述したい場合は、この動作を変更できます。 –

+0

問題は、アンドロイドアノテーションを使用している場合、このメソッドはすべて無視されます。トースト "onBackPressed"より新しいショー。 – Eugene

0

AndroidAnnotationsをsuper.onBackPressedを追加しよう。

あなたのケースのためのonBackPressed()を無効にする正しい方法はこれです:それはあなたのFragment Sを飛び出るとActivityトランジションを実行するのと同じように、必要なことを行いますので、

@Override 
    public void onBackPressed() { 
     Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show(); 

     super.onBackPressed(); 
    } 

あなたは、super.onBackPressed()を呼び出す必要があります。そして、それは最後にfinish()と呼ぶでしょう。

関連する問題