你如何在一个安卓应用程序中处理多个屏幕?我已经开发了底部的标签栏,没有问题,但是我想要做的是用我在项目中创建的新 .xml 布局文件中的内容替换屏幕上的所有内容。此外,我如何将后端代码绑定到新的布局文件?我确信这个问题可能已经存在并且可以用谷歌搜索(可能是一个新词)。但是,我不知道我在寻找什么。在此先感谢您的帮助。
4 回答
您需要做的是,创建一个新的 Activity 并将其添加到 AndroidManifest.xml:
<activity android:name="ActivityClassName" android:label="Label for the Activity"></activity>
并且可以在方法中调用:
public void startActivity() {
Intent someName = new Intent(CurrentClass.this, ActivityClassName.class);
startActivity(someName);
}
Android 应用程序通常为每个屏幕使用单独的 Activity,并使用Activity.startActivity和Activity.startActivityForResult在它们之间切换。您可以通过Intent.putExtra将任意数据传递给 Activity 。
希望这可以帮助,
菲尔·莱洛
这实际上取决于您希望应用程序如何流动。
让我们考虑用户执行以下操作的场景:
- 开始您的第一个活动
- 按第二个标签
- 按第三个标签
- 按下后退按钮
如果您为每个屏幕使用单独的活动,则会发生以下情况
- 活动 1 开始
- 活动 2 开始
- 活动 3 开始
- Activity 3 关闭,用户返回 Activity 2
(在这种情况下,再次按下后退按钮会将您带回活动 1,再次按下将退出您的应用程序)
如果您对所有选项卡使用一项活动,则会发生以下情况
- 活动 1 开始
- 活动 1 将选项卡内容设置为选项卡 2 内容
- 活动 1 将选项卡内容设置为选项卡 3 内容
- Activity 1 关闭,用户返回主屏幕
如果您正在使用带有选项卡的屏幕,那么第二种方法(具有 aTabHost
或类似的单个 Activity)是首选方法,否则用户最终会制作一个大型活动堆栈,只是在选项卡之间切换(意味着如果他们在选项卡之间切换很多他们必须多次按下后退按钮才能退出)。
如果您想采用单一活动方法,请对TabHost
和进行一些研究TabContentFactory
。在createTabContent
您的工厂方法中,您可以使用 XML 扩展视图/布局以设置为选项卡内容View.inflate
。查一下,如果你卡住了,再回来问另一个问题;)