2017-08-06 2 views
0

複数のアクティビティ(アンドロイド)上のボタンをバック無効: Disable back button in android は(このため、重複としてマークしないでください。)私はこの質問を見てきました

私のクエリはこれです:私は、行の20回の活動を持っている 。戻るボタンを無効にして、ユーザーが一度通過したアクティビティに戻ることはできないようにします。現在、私がこれを行う方法は、onBackPressed()をオーバーライドし、super.onBackPressed()コールを削除します。これは正常に動作します。

これで、さらに40個のアクティビティを追加する必要があり、同じ効果が得られるはずです。各アクティビティでコードを作成することなく、アプリケーション全体の戻るボタンを無効にできる方法はありますか?

答えて

3

BaseActivityを作成し、すべてのアクティビティをこのBaseActivityで拡張し、onBackPressed()ロジックをBaseActivityに追加します。

例:

public class BaseActivity extends AppCompatActivity { 

    // Add your onBackPressed() logic here 
} 

あなたの活動、

public class MyActivityA extends BaseActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_activity); 
    } 
} 
+0

何もしていないアクティビティを作成し、それ自体をユーザーに表示しないことをお勧めしますか? –

+0

これはAppCompatActivityに似ています。これは、Sooを拡張するFragmentActivityを拡張しています。あなたの層では、それを作成しています。あなたは自分の活動で共通していることを追加することができます。 ** Note:あなたがMainfest **に追加する必要のないBaseActivity ** –

+0

私はこれを行う最もクリーンな方法だと思います。継承の基本的なOOP原則を使用します。 :)ありがとう。 –

0

Uは、次のアクティビティに進む間に、以前のアクティビティを終了することによってこれを達成できます。

+0

私のアプリがバックいくつかのデータを必要とする別のアプリケーションによって呼び出されたので、私は、以前の活動を終了することはできません。だから私はonActivityResult()を使って、私のアプリケーションの最後のアクティビティから、私のアプリケーションの最初のアクティビティを通して、そして私を呼び出したアプリケーションにデータを伝播しています。また、それは各アクティビティに 'finish()'を書く必要があることを意味します。私は一度だけ行うことができる何かを探しています。 –

関連する問題