上面的例子是ADT自动生成的代码,似乎与我们一点关系也没有。那我们来改一下代码,因为在windows平台上的Helloworld经常是由一个按钮触发的,所以,我们想第二个Helloworld应该是这样的:加一个按钮和文本输入框,单击按钮后在原来的TextView后面加上输入框中输入的文字。

第一步是,增加一个Button和一个EditText,与TextView一样,它们也在main.xml里描述一下:

<EditText id="@+id/edt"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text=""

/>

<Button id="@+id/go"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:text="@string/go">

<requestFocus />

</Button>

这里有两个地方要注意:id=@+id/go,这表示需要一个唯一的UID来作为ButtonID,它的引用名是go。还有一个是android:text=@string/go表示这个按钮的文本不是直接写有main.xml里了,而是来源于另一个资源描述文件strings.xml里,本例中的strings.xml如下:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">helloTwo</string>

<string name="tit_dialog">提示</string>

<string name="msg_dialog">你好,中国</string>

<string name="ok_dialog">确定</string>

<string name="go">浏览</string>

</resources>

然后,在代码里(onCreate函数中)我们加上以下代码(简单起见,用了嵌套类):

Button btn = (Button)findViewById(R.id.go);

btn.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

EditText edt=(EditText)helloTwo.this.findViewById(R.id.edt);

TextView txt= (TextView)helloTwo.this.findViewById(R.id.txt);

txt.setText(getString(R.string.msg_dialog)+edt.getText());

}

});

为铵钮增加一个onClick事件处理器,在点击事件中,设置txt的文本为R.string.msg_dialgo+edt.getText()

这里的关键是两个函数的使用: findViewById(R.id.go)可以根据资源的名称加载View类型的资源,同样用函数getString(R.string.msg_dialog)可以加载字符串资源。

编译,run一下看看效果。

 

资料来源:清源教育www.tsingyuan.cn

 

QQ群:291015251