万书网 > 文学作品 > Android从入门到精通 > 第58页

第58页



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个同色弹珠相连时,这些弹珠将会爆掉,否则该弹珠被连接到指向的位置,直到泡泡下压越过下方的警戒线,游戏结束。





(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"



>





说明:  在标记中,为Activity设置主题时,除了上面设置的主题样式@android:style/The-  me.Dialog外,还可以设置为@android:style/Theme.DeviceDefault.Light.Dialog、@android:style/Theme.  Holo.Dialog、@android:style/Theme.DeviceDefault.Dialog或者@android:style/Theme.  Holo.Light.Dia-  log等。使用这些主题可以让该Activity采用不同的对话框样式。

运行本实例,将显示泡泡龙游戏的主界面,单击“关于”按钮,将显示如图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();  //获取输入的用户名