使用具有选择性后退按钮的多个布局的最佳方法是什么?

时间:2014-03-31 12:56:06

标签: android android-layout return back-button

我想使用Android设备返回/返回按钮切换到我的应用程序中的先前布局,但仅适用于特定布局。所有其他情况应使用按钮正常关闭应用程序功能。这是为了节省屏幕上的空间以便显而易见"在此之前返回屏幕"按钮。

到目前为止,我提出了这个简单的解决方案:

int screenid=0;

public void ButtonClickN(View v)
{
    setContentView(R.layout.ScreenX);
    screenid=3;
}

public void onBackPressed()
{
    if(screenid==2) // screen z
    {
        setContentView(R.layout.ScreenY);
        screenid=1;
        return;
    }
    if(screenid==3) // screen x
    {
        setContentView(R.layout.ScreenZ);
        screenid=2;
        return;
    }

    finish(); // all other cases button works as normal
}

但我觉得这不是最好的方法,因为可能会有一些内置的东西让它变得更简单。比如说,按名称比较布局以删除整数,或者从左到右滑动布局......

另一种方法是使用Intent在另一个活动中创建新屏幕。它在旧版面上绘制了新的布局:

public void ButtonClickN(View v)
{
    Intent i3 = new Intent(view.getContext(), ActivityX.class);
    startActivityForResult(i3, 0);
}

这使Android后退按钮像以前一样工作,但需要为每个屏幕创建一个新类

public class ActivityX extends Activity

onCreate调用:

setContentView(R.layout.ScreenX);

并且需要AndroidManifest.xml中的附加声明

<activity android:name=".ActivityX"></activity>

与第一种解决方案相比,显然太麻烦了。它还会在模拟器中生成重叠效果,我想避免这种效果。到目前为止,效果并没有出现在我的三星Galaxy Y(GT-S5360)上,但谁知道它会在其他设备上出现什么。

所以我的问题是,是否有更好/更简单的方法来选择性地使用Android后退按钮?或者更有效地在全屏布局之间切换?

1 个答案:

答案 0 :(得分:0)

显然保持当前正在使用哪个屏幕的ID整数是最简单的解决方案。