主题:【让Button来说Hello World】
上面的例子是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来作为Button的ID,它的引用名是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