Android 学习笔记-让我们快速上手吧
Google 的 Android SDK 发布也有一段时间了,一直想研究一下却苦于不到时间。 利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的 gPhone。
SDK 的下载与安装并不复杂, 网上也有不少同学已经进入状态了, 我就不再重复了吧。
今天主要讨论的,还是永远不变的话题:Hello World.
1.最简单的 HelloWorld
安装了 SDK 后,直接生成一个 Android Project,一句代码不用写,就能跑出一个最 简单的 HelloWorld 例程。我们看一下它的代码:
public void onCreate(Bundle icicle) {
setTheme(android.R.style.Theme_Dark);
setContentView(R.layout.main);
}
看上去实在很简单,只有两句话而已。关键在这个 R.layout.main 上,凭直觉,这 应该是定义的资源。的确,在 R.java 中只是定义了一个 static int 而已,真正的资源 描述在 res/l文件里(注意:这里的 R.java 不要手工编辑,每次 build project 时它都会根据 res 下的资源描述被自动修改)。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="schemas.android/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World"
/>
</LinearLayout>
这个文件很好读 , 一个描述了这是一个线性排列的布局 , android:orientation=vertical 表示所有组件将纵向排布。而经典的 Hello World 是用 一个 TextView 来展示的。
由此,我们知道,Android 的程序从一个 Activity 派生出来,并且从它的 onCreate 开始启动;Android 里要显示的组件用 XML 文件描述而不用在代码中硬编码(这是一个好 的习惯,我们应该从一开始就坚持下去);
2.让 Button 来说 Hello World
上面的例子是 ADT 自动生成的代码,似乎与我们一点关系也没有。那我们来改一下代码, 因为在 windows 平台上的 Helloworld 经常是由一个按钮触发的,所以,我们想第二个 Helloworld 应该是这样的:加一个按钮和文本输入框,单击按钮后在原来的 TextView 后 面加上输入框中输入的文字。
第一步是,增加一个 Button 和一个 EditText,与 TextView 一样,它们也在 l 里 描述一下:
<EditText id="@+id/edt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
android:layout_width="wrap_content" android:layout_height="wrap_con tent"
android:text="@string/go">
<requestFocus />
安卓intent用法</Button>
这里有两个地方要注意:id=@+id/go,这表示需要一个唯一的 UID 来作为 Button 的 ID, 它的引用名
是 go。还有一个是 android:text=@string/go 表示这个按钮的文本不是直接 写有 l 里了,而是来源于另一个资源描述文件 l 里,本例中的 l 如下:
<?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();
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
TextView txt= (TextView)helloTwo.this.findViewById( );
txt.setText(getString(R.string.msg_dialog)+Text());
}
});
为铵钮增加一个 onClick 事件处理器,在点击事件中,设置 txt 的文本为
R.string.msg_Text()。
这里的关键是两个函数的使用: findViewById()可以根据资源的名称加载 View 类型的资源,同样用函数 getString(R.string.msg_dialog)可以加载字符串资源。
编译,run 一下看看效果。
3. 再让菜单 Say Hello
从 API 文档中我们看到 Activity 中有两个函数:onCreateOptionsMenu 和 onOptionsItemSelected,显示,这个 OptionsMenu 就是所谓的上下文菜单(在 GPhone 的模拟器上,有个键专用于弹出这个菜单)。下面我们就为这个 HelloWorld 例子加上一 个菜单,并且让它可以 Say hello。
这次,我们不涉及到资源的描述文件了,而是直接使用这两个函数来实现,其实代 码也很简单,所以,我们再增加一个退出应用的功能(否则每次都是按取消键退出应用 显示太不专业了)。
代码如下:
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0,2,"exit");
return true;
}
public boolean onOptionsItemSelected(Item item)
{
int id = Id();
switch(id){
case 1:
AlertDialog.show(this,getString(R.string.app_name),
getString(R.string.msg_dialog), getString(R.stri ng.ok_dialog), true);
break;
case 2:
finish();
break;
}
在 CreateOptionsMenu 时,我们简单地增加两个菜单项,menu.add(组 ID,项 ID,显 示文本),(注意:这里我直接将文字写在代码里,这并不提倡)。然后,在 OptionsItemSelected 事件中,我们根据选中的菜单项做相应处理,如果选中 1,则弹出 一个对话框显示资源文件中的“你好,中国”,如果选中 2 则退出应用。
AlertDialog.show 是一个静态方法,类似于我们在 WIN 平台上经常使用的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。