Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:从类实现后退按钮_Java_Android_Button_Back - Fatal编程技术网

Java Android:从类实现后退按钮

Java Android:从类实现后退按钮,java,android,button,back,Java,Android,Button,Back,好吧,这是我的问题。我正在开发一个android应用程序,同时也在学习android,所以大多数时候我都会出错。正常情况下,我可以在研究一点后修复它们,但我陷入了这一点 我正在尝试为我的应用程序中的每个活动创建一个back按钮,所以我考虑创建一个“BackButton”类,这样我就可以在每次需要时实例化它。以下是我的BackButton代码: import android.content.Intent; import android.view.View; import android.widge

好吧,这是我的问题。我正在开发一个android应用程序,同时也在学习android,所以大多数时候我都会出错。正常情况下,我可以在研究一点后修复它们,但我陷入了这一点

我正在尝试为我的应用程序中的每个活动创建一个back按钮,所以我考虑创建一个“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. 
                }

        }

    }

那么,我应该如何在任何活动中实现这一点?我做错什么了?(当然我是lol)

有一种更简单的方法来听backButton

// Called when the activity has detected the user's press of the back key.
 onBackPressed()
当您不调用super方法时,不应该有任何进一步的步骤。 但这不是“禁用”后退按钮的好方法


有多种方法可以阻止后退按钮

通过覆盖您的
活动的
onKeyDown
onBackPressed

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


就我个人而言,我建议不要这样做。我认为在每个
活动
中覆盖后退按钮会更安全、更灵活,即使不容易,也同样容易。很可能,随着应用程序的增长,您并不总是希望返回到
main活动
,因为当用户点击后退按钮时,这可能不是预期的操作。覆盖
活动
中需要的后退按钮并运行代码

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

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

如果要删除当前活动和目标活动之间的所有活动,也可以通过调用设置标志(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP)
(此处为
main ACTIVITY
),使用
FLAG\u ACTIVITY\u CLEAR\u TOP
等标志,如果您仍然需要,则在back pressed方法中实例化您在内部创建的类的对象。如果您只需要back button功能,那么为什么不使用action bar?您不需要back button?单击时,您有一个hardware back button返回到上一个活动。对于导航,请使用actionbar和navigationbar