1.最简单的HelloWorld

安装了SDK后,直接生成一个Android Project,一句代码不用写,就能跑出一个最简单的HelloWorld例程。
我们看一下它的代码:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> public void onCreate(Bundleicicle) {
super .onCreate(icicle);
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
}

看上去实在很简单,只有两句话而已。关键在这个R.layout.main上,凭直觉,这应该是定义的资源。的确,在R.java中只是定义了一个 static int 而已,真正的资源描述在res/layout/main.xml文件里(注意:这里的R.java不要手工编辑,每次build project时它都会根据res下的资源描述被自动修改)。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <? xmlversion="1.0"encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation
="vertical"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
>
< TextView id ="@+id/txt"
android:layout_width
="fill_parent"
android:layout_height
="wrap_content"
android:text
="HelloWorld"
/>
</ LinearLayout >

这个文件很好读,一个<LinearLayout>描述了这是一个线性排列的布局,android:orientation=vertical表示所有组件将纵向排布。而经典的Hello World是用一个TextView来展示的。

由此,我们知道,Android的程序从一个Activity派生出来,并且从它的onCreate开始启动;Android里要显示的组件用XML文件描述而不用在代码中硬编码(这是一个好的习惯,我们应该从一开始就坚持下去);

2.让Button来说Hello World

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

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> < 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如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <? xmlversion="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函数中)我们加上以下代码(简单起见,用了嵌套类):

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> Buttonbtn = (Button)findViewById(R.id.go);
btn.setOnClickListener(
new View.OnClickListener()
{
public void onClick(Viewv)
{
EditTextedt
= (EditText)helloTwo. this .findViewById(R.id.edt);

TextViewtxt
= (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一下看看效果。

3. 再让菜单Say Hello

从API 文档中我们看到Activity中有两个函数:onCreateOptionsMenu和onOptionsItemSelected,显示,这个 OptionsMenu就是所谓的上下文菜单(在GPhone的模拟器上,有个键专用于弹出这个菜单)。下面我们就为这个HelloWorld例子加上一个菜单,并且让它可以Say hello。
这次,我们不涉及到资源的描述文件了,而是直接使用这两个函数来实现,其实代码也很简单,所以,我们再增加一个退出应用的功能(否则每次都是按取消键退出应用显示太不专业了)。
代码如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> public boolean onCreateOptionsMenu(Menumenu)
{
super .onCreateOptionsMenu(menu);
menu.add(
0 , 1 , " sayhello " );
menu.add(
0 , 2 , " exit " );

return true ;
}
public boolean onOptionsItemSelected(Itemitem)
{
super .onOptionsItemSelected(item);

int id = item.getId();
switch (id){
case 1 :
AlertDialog.show(
this ,getString(R.string.app_name),
getString(R.string.msg_dialog),getString(R.string.ok_dialog),
true );
break ;
case 2 :
finish();
break ;
}

在CreateOptionsMenu时,我们简单地增加两个菜单项,menu.add(组ID,项ID,显示文本),(注意:这里我直接将文字写在代码里,这并不提倡)。然后,在OptionsItemSelected事件中,我们根据选中的菜单项做相应处理,如果选中1,则弹出一个对话框显示资源文件中的“你好,中国”,如果选中2则退出应用。
AlertDialog.show是一个静态方法,类似于我们在WIN平台上经常使用的MessageBox一样,很方便的。

更多相关文章

  1. android录音功能的实现
  2. Android修改源代码控制永不锁屏
  3. android为ImageView使用蒙层
  4. 安卓复习.Part1
  5. Storyboard的爱与恨
  6. Android简单实现app每月签到功能
  7. Android(安卓)Studio使用教程(三):常用快捷键
  8. Android程序如何实现换肤?
  9. view xml

随机推荐

  1. Android优秀开源项目
  2. android textview
  3. Android小功能集
  4. Android(安卓)设置横屏/竖屏
  5. android 工具类:用来判断一个文件是不是图
  6. Android(安卓)UI: LinearLayout中layout_
  7. Android中ListView多种Item布局
  8. 【转载】android仿QQ列表的效果实现
  9. android内核编译过程
  10. Android各种获取Context方法