我想使用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后退按钮?或者更有效地在全屏布局之间切换?
答案 0 :(得分:0)
显然保持当前正在使用哪个屏幕的ID整数是最简单的解决方案。