Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
Android 如果一个活动中有多个屏幕,如何处理活动中的“后退”按钮_Android - Fatal编程技术网

Android 如果一个活动中有多个屏幕,如何处理活动中的“后退”按钮

Android 如果一个活动中有多个屏幕,如何处理活动中的“后退”按钮,android,Android,我有一个活动,根据用户单击的按钮有多个屏幕 如果我需要处理此活动中的“后退”按钮,该怎么办。i、 当我按下“返回”按钮时,它必须转到我活动的上一个屏幕 我对安卓真的很陌生。有人能帮我解决这个问题吗 感谢阅读。在活动中重写onBackPressed()函数,并在其中编写所需的代码以用于意图触发。重写onBackPressed()函数在您的活动中运行,并在其中编写所需的代码以进行意图触发。我猜多个屏幕意味着您有一些布局,并使用setContentView()进行更改。您必须覆盖后退按钮的行为,保留不

我有一个活动,根据用户单击的按钮有多个屏幕

如果我需要处理此活动中的“后退”按钮,该怎么办。i、 当我按下“返回”按钮时,它必须转到我活动的上一个屏幕

我对安卓真的很陌生。有人能帮我解决这个问题吗


感谢阅读。

在活动中重写onBackPressed()函数,并在其中编写所需的代码以用于意图触发。

重写onBackPressed()函数在您的活动中运行,并在其中编写所需的代码以进行意图触发。

我猜多个屏幕意味着您有一些布局,并使用
setContentView()
进行更改。您必须覆盖后退按钮的行为,保留不同屏幕之间用户导航的历史记录(如果没有强制路径),并将后退按钮代码设置为上一屏幕的内容

如果您使用的是API>=5,则覆盖后退按钮很容易:请参阅

如果你还想向后兼容,你会发现一些东西


这通常是由Android自动完成的,考虑多个活动,而不是多个屏幕的多个活动。

< P>我猜想,多个屏幕意味着你有一些布局,并用<代码> SETCONTENTVIEW()/代码>来改变它们。您必须覆盖后退按钮的行为,保留不同屏幕之间用户导航的历史记录(如果没有强制路径),并将后退按钮代码设置为上一屏幕的内容

如果您使用的是API>=5,则覆盖后退按钮很容易:请参阅

如果你还想向后兼容,你会发现一些东西


因为这通常都是由Android自动完成的,考虑多个活动,而不是多个活动的多个屏幕。

你可以通过处理<强>键下事件>并添加一些条件来实现这一点。(就像在每个活动中获取一个静态变量,并为静态变量指定不同的值)在每个活动中。 请参阅以下代码:

public boolean onKeyDown(int keyCode, KeyEvent event) {


        if ((keyCode == KeyEvent.KEYCODE_BACK)) {

            if(condition 1) 
            {
                Intent i=new Intent("com.prac.A");  // A is your another activity in com.prac package   
                startAcitvity(i);
            }
            else if(condition 2)
            {
                Intent i=new Intent("com.prac.B");  
                startAcitvity(i);
            }
            else    
            {
                Intent i=new Intent("com.prac.C");  
                startAcitvity(i);
            }

         }
        return false;
    }

希望这会对您有所帮助。

您可以通过处理按键事件来做到这一点,并在每个活动中添加一些条件(例如获取静态变量,并在每个活动中为静态变量指定不同的值)。 请参阅以下代码:

public boolean onKeyDown(int keyCode, KeyEvent event) {


        if ((keyCode == KeyEvent.KEYCODE_BACK)) {

            if(condition 1) 
            {
                Intent i=new Intent("com.prac.A");  // A is your another activity in com.prac package   
                startAcitvity(i);
            }
            else if(condition 2)
            {
                Intent i=new Intent("com.prac.B");  
                startAcitvity(i);
            }
            else    
            {
                Intent i=new Intent("com.prac.C");  
                startAcitvity(i);
            }

         }
        return false;
    }

希望这能对你有所帮助。

如果@bigstones正确地认为你正在更改布局而不是开始新的
活动,那么你应该重新考虑你的方法。你应该开始
活动而不是更改布局。如果@bigstones正确地认为你正在更改布局而不是开始新的
活动然后你应该重新考虑你的方法。你应该开始活动,而不是改变布局。