赞
踩
App活动页面的基本操作,首先手把手地分三步创建新的App页面,接着通过活动创建菜单快速生成页面源码,然后说明了如何在代码中跳到新的活动页面。
每次创建新的项目,都会生成默认的activity_main.xml和MainActivity.java,它们正是App首页对应的XML文件和Java代码。若要增加新的页面,就得由开发者自行操作了,完整的页面创建过程包括3个步骤:创建XML文件、创建Java代码、注册页面配置,分别介绍如下:
1.在Android Studio左上方找到项目结构图,右击res目录下面的layout,弹出如图一所示的右键菜单。
2.在右键菜单中依次选择New→XML→Layout XML File,弹出如下图二所示的XML创建对话框。
3.在XML创建对话框的Layout File Name输入框中填写XML文件名,例如activity_main2,然后单击窗口右下角的Finish按钮。之后便会在layout目录下面看到新创建的XML文件activity_main2.xml,双击它即可打开该XML的编辑窗口,再往其中填写详细的布局内容。
1.同样在Android Studio左上方找到项目结构图,右击java目录下面的包名,弹出如下图三所示的右键菜单。
2.在右键菜单中依次选择New→Java Class,弹出如下图四所示的代码创建窗口。
3.在代码创建窗口的Name输入框中填写Java类名,例如Main2Activity,然后单击窗口下方的OK按钮。之后便会在Java包下面看到新创建的代码文件Main2Activity,双击它即可打开代码编辑窗口,再往其中填写如下代码,表示加载来自activity_main2的页面布局。
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
}
1.创建好了页面的XML文件及其Java代码,还得在项目中注册该页面,打开AndroidManifest.xml,在application节点内部补充如下一行配置:
<activity android:name=".Main2Activity"></activity>
2.添加了上面这行配置,表示给该页面注册身份,否则App运行时打开页面会提示错误“activity not found”。如果activity的标记头与标记尾中间没有其他内容,则节点配置也可省略为下面这样:
<activity android:name=".Main2Activity /">
完成以上3个步骤后,才算创建了一个合法的新页面。
上面经过创建XML文件、创建Java代码、注册页面配置3个步骤,就算创建好了一个新页面,没想到区区一个页面也这么费事,怎样才能提高开发效率呢?其实Android Studio早已集成了快速创建页面的功能,只要一个对话框就能完成所有操作。
1.仍旧在项目结构图中,右击java目录下面的包名,弹出如下图所示的右键菜单。
2.右键菜单中依次选择New→Activity→Empty Activity,弹出如下图七所示的页面创建对话框。
3.在页面创建对话框的Activity Name输入框中填写页面的Java类名(例如Main2Activity),此时下方的Layout Name输入框会自动填写对应的XML文件名(例如activity_main2),单击对话框右下角的Finish按钮,完成新页面的创建动作。
回到Android Studio左上方的项目结构图,发现res的layout目录下多了个activity_main2.xml,同时java目录下多了个Main2Activity,并且Main2Activity代码已经设定了加载activity_main2布局。接着打开AndroidManifest.xml,找到application节点发现多了下面这行配置:
<activity android:name=".Main2Activity"></activity>
检查结果说明,只要填写一个创建页面对话框,即可实现页面创建的3个步骤。
一旦创建好新页面,就得在合适的时候跳到该页面,假设出发页面为A,到达页面为B,那么跳转动作是从A跳到B。由于启动App会自动打开默认主页MainActivity,因此跳跃的起点理所当然在MainActivity,跳跃的终点则为目标页面的Activity。这种跳转动作翻译为Android代码,格式形如“startActivity(new Intent(源页面.this, 目标页面.class));”。如果目标页面名为Main2Activity,跳转代码便是下面这样的:
// 活动页面跳转,从MainActivity跳到Main2Activity
startActivity(new Intent(MainActivity.this, Main2Activity.class));
因为跳转动作通常发生在当前页面,也就是从当前页面跳到其他页面,所以不产生歧义的话,可以使用this指代当前页面。简化后的跳转代码如下所示:
startActivity(new Intent(this, Main2Activity.class));
接下来做个实验,准备让App启动后在首页停留3秒,3秒之后跳到新页面Main2Activity。此处的延迟处理功能,用到了Handler工具的postDelayed方法,该方法的第一个参数为待处理的Runnable任务对象,第二个参数为延迟间隔(单位为毫秒)。为此在MainActivity.java中补充以下的跳转处理代码:
@Override protected void onResume() { super.onResume(); goNextPage(); // 跳到下个页面 } // 跳到下个页面 private void goNextPage() { TextView tv_hello = findViewById(R.id.tv_hello); tv_hello.setText("3秒后进入下个页面"); // 延迟3秒(3000毫秒)后启动任务mGoNext new Handler(Looper.myLooper()).postDelayed(mGoNext, 3000); } private Runnable mGoNext = new Runnable() { @Override public void run() { // 活动页面跳转,从MainActivity跳到Main2Activity startActivity(new Intent(MainActivity.this, Main2Activity.class)); } };
运行测试App,刚打开的App界面如图八所示,过了3秒发生跳转事件的App界面如图九所示,可见成功跳到了新页面。
当然,以上的跳转代码有些复杂,比如:Intent究竟是什么东西?为何在onResume方法中执行跳转动作?Handler工具的处理机制是怎样的?带着这些疑问,后续章节将会逐渐展开,一层一层拨开Android开发的迷雾。
App开发必须事先掌握的基础知识,包括App的开发特点(App的运行环境、App的开发语言、App访问的数据库)、App的工程结构(App工程的目录结构、编译配置文件build.gradle、运行配置文件AndroidManifest.xml)、App的设计规范(界面设计与代码逻辑、利用XML标记描绘应用界面、使用Java代码书写程序逻辑)、App的活动页面(创建新的App页面、快速生成页面源码、跳转到另一个页面)。
通过本此的学习,应该了解App开发的基本概念,并且熟悉App工程的组织形式,同时掌握使用Android Studio完成一些简单操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。