public class AboutActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll=new LinearLayout(this); //创建线性布局管理器对象
ll.setPadding(20,20,20,20);
TextView tv=new TextView(this); //创建TextView对象
tv.setTextSize(24); //设置字体大小
tv.setText(R.string.about); //设置要显示的内容
ll.addView(tv); //将TextView添加到线性布局管理器中
setContentView(ll); //设置该Activity显示的内容视图
}
}
说明: 在上面的代码中,为TextView组件设置要显示的文本内容时,采用的是使用字符串资源的方法。这里就需要在项目的res\values目录下的strings.xml文件中添加一个名称为about的字符串变量,内容是要显示的关于信息。名称为about的变量的设置代码如下:
(3)打开默认创建的主活动MainActivity,在onCreate()方法中,获取“关于”按钮并为其添加单击事件监听器,在重写的onClick()方法中,创建一个AboutActivity所对应的Intent对象,并调用startActivity()方法,启动AboutActivity,具体代码如下:
ImageView about=(ImageView)findViewById(R.id.about); //获取“关于”按钮
about.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, AboutActivity.class); //创建Intent对象
startActivity(intent); //启动About Activity
}
});
(4)在AndroidManifest.xml文件中配置AboutActivity,配置的主要属性有Activity使用的图标、实现类、标签和使用的主题,具体代码如下:
android:icon="@drawable/ic_launcher"
android:name=".AboutActivity"
android:label="关于..."
android:theme="@android:style/Theme.Dialog"
>
说明: 在
运行本实例,将显示泡泡龙游戏的主界面,单击“关于”按钮,将显示如图5.6所示的“关于”对话框。
图5.6 “关于”对话框
5.3 多个Activity的使用
教学录像:光盘\TM\lx\5\多个Activity的使用.exe
在Android应用中,经常会有多个Activity,而这些Activity之间又经常需要交换数据。下面就来介绍如何使用Bundle在Activity之间交换数据,以及如何调用另一个Activity并返回结果。
5.3.1 使用Bundle在Activity之间交换数据
当在一个Activity中启动另一个Activity时,经常需要传递一些数据。这时就可以通过Intent来实现,因为Intent通常被称为是两个Activity之间的信使,通过将要传递的数据保存在Intent中,就可以将其传递到另一个Activity中了。
在Android中,可以将要保存的数据存放在Bundle对象中,然后通过Intent提供的putExtras()方法将要携带的数据保存到Intent中。下面通过一个具体的实例介绍如何使用Bundle在Activity之间交换数据。
说明: Bundle是一个字符串值到各种Parcelable类型的映射,用于保存要携带的数据包。
例5.3 在Eclipse中创建Android项目,名称为5.3,实现用户注册界面,并在单击“提交”按钮时,启动另一个Activity显示填写的注册信息。(实例位置:光盘\TM\sl\5\5.3)
(1)修改新建项目的res\layout目录下的布局文件main.xml,在默认添加的垂直线性布局管理器中,添加用于输入用户注册信息的文本框和编辑框以及一个“提交”按钮。由于此处的布局代码比较简单,这里不再给出,具体代码可以参见光盘。
(2)打开默认创建的主活动MainActivity,在onCreate()方法中,获取“提交”按钮,并为其添加单击事件监听器,在重写的onClick()方法中,首先获取输入的用户名、密码、确认密码和E-mail地址,并保存到相应的变量中,然后判断输入信息是否为空,如果为空给出提示框,否则判断两次输入的密码是否一致,如果不一致,将给出提示信息,并清空“密码”和“确认密码”编辑框,让“密码”编辑框获得焦点,否则,将输入的信息保存到Bundle中,并启动一个新的Activity显示输入的用户注册信息,具体代码如下:
Button submit=(Button)findViewById(R.id.submit); //获取“提交”按钮
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String user=((EditText)findViewById(R.id.user)).getText().toString(); //获取输入的用户名