3

好的,这是我的问题。我正在开发一个 android 应用程序并同时学习 android,所以大多数时候我都会出错。通常我可以在研究一下后修复它们,但我被困在这一点上。

我正在尝试为我的应用程序中的每个 Activity 制作一个后退按钮,所以我考虑制作一个“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如果您想通过调用删除Activities当前标志和目标Activity(此处)之间的所有标志MainActivitysetFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

于 2013-09-04T13:14:49.377 回答
1

有多种方法可以阻止返回按钮。

通过覆盖onKeyDownonBackPressed您的Activity.

请访问以下问题链接以获取详细说明及其在答案中给出的解决方案。

链接 1

链接 2

于 2013-09-04T13:13:33.323 回答