Monday, July 19, 2010

我的第一个使用按钮打开另一个Activity的程序

android 按钮打开另一个activity的示例程序
首先,是布局排列问题。一般来说,有经验的用户会选择使用java代码生成界面,但是我对界面代码不太熟悉,所以,我使用了xml文件来生成界面。
打开res->layout,选择main.xml,这是系统默认生成的界面布置xml文件。双击该项,会打开该文件,在页面底部选择layout,出现页面布置页面。在页面上右击鼠标,选择Add菜单项。选择"Button"项,这样就在主界面中加入了一个按钮。
其次要创建一个该按钮打开的activity,也可以理解为打开一个对话框。在Android中,一个Activity由一个java文件和一个xml文件组成。
要创建一个java文件比较简单,单击工具栏中的新建按钮,选择class。在弹出的对话框中,单击"Source
Folder:"后面的"Browse",选择要保存文件的工程名称,一般来说应是当前工程。
在Name编辑框中,输入要创建的java文件名,也就是类名称。如wnAbout.
单击Superclass编辑框后面的"Browse"按钮,选择Activity类。
单击"Finish"按钮结束创建。
这样就创建了一个类。
然后开始创建xml布局文件。
单击工具栏新建按钮,选择Android XML file项。
在弹出的对话框中,单击"Project"后面的"Browse"按钮,选择要创建布局文件的项目。
在File文本框中,输入文件名称。如about.xml。要注意,必须要输入xml这个扩展名。
在"What type of Resource Would you like create?"单选框中,选择Layout项,意思是创建一个布局的xml文件。
在"Select the root element for the XML file"下拉框中,选择LinearLayout项,意思是选择线性布局模式。
单击finish按钮完成创建。

为了让程序可以响应按钮的单击事件,需要建立一个监听器。
现在,单击res->layout,然后双击main.xml项,打开主界面设置页面。单击页面底部的main.xml,直接编辑该xml文件。将其更改成如下内容:
<Button android:text="@string/strAbout"
android:id="@+id/btnAbout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
意思是让按钮显示字符串strAbout的内容,并且将按钮的id设置为btnAbout。
单击res->values,双击打开strings.xml文件,在其中加入:
<string name="strAbout">about</string>
意思是将strAbout字符串的内容设置为about。
这样,就做好了准备工作。可以单击工具栏的运行按钮或者按"Ctrl+F11"来启动模拟器,并在模拟器中运行该程序。应该可以看到一个问候语字符串和一个显示了About字符的按钮。
现在开始输入代码。
单击src->项目空间名称,双击项目名称为名的java文件。
修改该文件,使其像如下样子:
public class wnReader extends Activity {

private Button btnAbout;//定义一个按钮对象
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnAbout=(Button)findViewById(R.id.btnAbout);
btnAbout.setOnClickListener(new View.OnClickListener()//设置监听器
{
public void onClick(View v) {
About();//按钮单击时触发About函数。
}
}); protected void About() {
Intent i = new Intent(this, wnAbout.class);
startActivity(i);
}

}

protected void About()//这个是按钮单击时触发的事件,注意应该定义为protected类型。
{
Intent i = new Intent(this, wnAbout.class);
startActivity(i);
}
现在建立了按钮单击事件的监听器,可以响应该按钮的单击事件。为了让程序可以打开新建的activity,首先需要修改一下AAndroidManifest.xml文件。双击该文件,打开。
在其中加入如下一段内容:
<activity android:name=".wnAbout"
android:label="@string/strAbout">
</activity>
修改后的内容应该如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wnReader"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".wnReader"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".wnAbout"
android:label="@string/strAbout">
</activity>

</application>
<uses-sdk android:minSdkVersion="7" />

</manifest>
但是由于系统自动建立的java文件和xml布局文件其实是空白的,所以应该在其上加入一些控件。
单击src->com.wnReader,双击其中的wnAbout.java,打开该文件。修改其内容,修改后内容应该如下所示:
public class wnAbout extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about);//意思是显示名为about.xml的布局文件
}
}
单击res->layout,双击about.xml文件。

No comments:

Post a Comment