蓝精灵 刷:设计Android的用户界面(三)
来源:百度文库 编辑:中财网 时间:2024/07/04 22:44:52
设计Android的用户界面(三)
通过上一篇文章,知道了如何创建一个应用程序来显示一个静态的View。然而,在大多数情况下仅仅显示是不够的,应该还需要与用户的交互行为。现在完成一个简单的和用户交互的示例。
这个小程序的需求是:
画面上有三行元素:
- 第一行是一个TextView,用来显示文字
- 第二行是一个EditText,用户将在此输入文字
- 第三行是一个Button
- 用户点击Button之后,会在第一行的TextView中显示:Hello,(用户在第二行中输入的文字)。
比如说用户在输入框中输入:“Roiding.com”,那么点击Button之后,会在显示区域显示:“Hello, Roiding.com”。
要完成这个程序,大概需要用5步:
第1步,先完成UI的设计,在res/layout/目录下创建一个文件,名为:sayhello.xml:
如果已经看过前一篇文章的话,这个文件还是比较容易懂的,不需要太多的解释了,只解释一下这几个语句:
- android:id=”@+id/textview_display”
这个是用来为当前的View声明一个ID,这样,在Java程序中就可以通过这个ID来找到这个元素,进而能够操作这个元素。 - android:textSize=”20px”
声明字体大小为20px,对于每种View,都会有一系列的可以设置的属性,具体的需要参考每个View的说明文档。
第2步,创建好这个布局文件之后,再把这个文件需要的android:text=”@string/sayhello”在res/values/strings.xml中声明一下:
say hello
第3步,现在,UI已经设计好了,那么创建一个Activity(命名为:SayHello.java)来显示这个UI:
package com.roiding.study;import android.app.Activity;import android.os.Bundle;public class SayHello extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sayhello);}}
在这一步完成的时候,就可以运行一下这个Activity,看看最终显示的效果是否和预期的一致,如果有差别,再调整一下。
第4步,为UI添加交互动作,添加完毕之后的SayHello.java:
package com.roiding.study;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class SayHello extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.sayhello);Button btn = (Button) findViewById(R.id.button_sayhello);btn.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {EditText edt = (EditText) findViewById(R.id.edittext_name);TextView tv = (TextView) findViewById(R.id.textview_display);tv.setText("Hello," + edt.getText());}});}}
这里面有些语句需要解释:
- Button btn = (Button) findViewById(R.id.button_sayhello)
这个语句中的findViewById()s是一个比较简单、重要、常用并且是一直用的语句,他的功能就是在当前的ContentView中按ID来找到 对应的View。例如这里,通过R.id.button_sayhello,就能找到第1步提到的Button了。这个用法和javascript中 的:document.getElementById()有异曲同工之妙。
那这里面的R.id.button_sayhello又是怎么出来的呢?前文中 说过,在Build的时候,aapt会自动生成R.java,对资源文件中的 android:id=”@+id/textview_display”,就会在R.java中向对应的生成一个ID。 - btn.setOnClickListener(new View.OnClickListener())
现在的GUI程序,好像都喜欢事件驱动的模型,有人这样描述过GUI系统本质: 在事件驱动下动态地展现数据模型的图形系统。在这个语句中,setOnClickListener就是为btn添加一个事件监听,监听OnClick事件,也就是说,如果一旦触发btn的OnClick事件,就会执行后面定义的功能。
第5步,运行程序,欣赏这部作品吧,Done。Oh My God,真是太容易了!
[待续]
未来的电脑用户界面设计什么样?
radiohead 的 Paranoid Android 中文翻译
如何用MFC设计多重对话框的用户界面?
怎样用vfp设计出漂亮的用户界面。请各大侠给个例子。多谢。
"用户界面规划设计"怎么翻译?
求C语言设计用户界面&弹出式菜单
有关用户界面切换的问题
acid android的menbers除了yuki外谁可以给我介绍一下?
哪里可以下到acid android的歌恳求拜托了我要疯了!!!!
paranoid android中文歌词
如何设计五因素三水平的正交设计表
装饰设计遵守的三原则是什么?
\"VB中的控件是用来设计用户界面的\"这句话是正确的还是错误的,如果错怎样改?
MATLAB的图形用户界面的应用?
图形用户界面是怎么做出来的?
请帮忙用英语翻译一下"浅论图形用户界面设计人性化"非常感谢!
我需要word,excel.powerpoint三样的设计
工厂中的“三电”设计是指的哪三电?
谁知道网页设计三剑客的下载地址???急啊、
关于三条路口红绿灯控制系统的设计
硝酸钾水溶液三效蒸发装置的设计
常用的软件如PCTOOLS.KIIL使用的用户界面是什么?
为什么应用程序的用户界面的汉字被问号代替~
求助:"图形用户界面"的定义或官方解释