3

さて、ここに私の問題があります。私はAndroidアプリに取り組んでおり、同時にAndroidを学習しているため、ほとんどの場合エラーが発生します。通常、少し調査すれば修正できますが、この点で行き詰まっています。

アプリのすべてのアクティビティに戻るボタンを作成しようとしているので、いつでもインスタンス化できるように「BackButton」クラスを作成することを考えました。ここに私の BackButton コードがあります:

import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.app.Activity;

    public class BackButton extends Activity implements View.OnClickListener{

        public static Button BackButton;

        // Defining the button
        public BackButton() {

            BackButton = (Button) findViewById(R.id.bBack);

            BackButton.setOnClickListener(this);

        }

        //To get the Button
        public static Button getBackButton() {
            return BackButton;
        }


        // OnClickListener
        public void onClick(View v) {

                try {
                    Class MainActivityClass = Class.forName("eu.lafarga.treballderecerca.MainActivity");
                    Intent MainActivityIntent = new Intent(BackButton.this, MainActivityClass); 
                    startActivity(MainActivityIntent);
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }finally {
                    // Save the things we've done. 
                }

        }

    }

では、これをアクティビティにどのように実装すればよいでしょうか? 私は何か間違ったことをしていますか?(もちろん私です笑)

4

3 に答える 3

4

backButton をリッスンする簡単な方法があります。

// Called when the activity has detected the user's press of the back key.
 onBackPressed()

また、スーパーメソッドを呼び出さない場合は、それ以上の手順はありません。しかし、戻るボタンを「無効にする」のは良い方法ではありません。

http://developer.android.com/reference/android/app/Activity.html

于 2013-09-04T13:10:20.867 に答える
2

個人的には、これをしないことをお勧めします。Activityそれぞれの戻るボタンをオーバーライドすることは、より安全で、より柔軟で、簡単ではないにしても同じくらい簡単だと思います。MainActivityユーザーが [戻る] ボタンを押したときに、これが期待されるアクションではない可能性が高いため、アプリが成長するにつれて常に に戻りたいとは限りません。Activities必要な戻るボタンをオーバーライドして、コードを実行します

    @Overrride
    public void onBackPressed(View v) {
     // save data first

      Intent MainActivityIntent = new Intent(CurrentActivityName.this, MainActivityClass); 
      startActivity(MainActivityIntent);
      super.onBackPressed();
}

現在のものとターゲットの間のFLAG_ACTIVITY_CLEAR_TOPすべてを削除したい場合などのフラグを使用することもできます(ここでは)を呼び出してActivitiesActivityMainActivitysetFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

于 2013-09-04T13:14:49.377 に答える
1

戻るボタンをブロックする方法は複数あります。

onKeyDownまたはをオーバーライドすることによりonBackPressedActivity.

詳細な説明と回答に示されている解決策については、次の質問リンクにアクセスしてください。

リンク 1

リンク 2

于 2013-09-04T13:13:33.323 に答える