资源预览内容
第1页 / 共67页
第2页 / 共67页
第3页 / 共67页
第4页 / 共67页
第5页 / 共67页
第6页 / 共67页
第7页 / 共67页
第8页 / 共67页
第9页 / 共67页
第10页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Android 学习笔记让我们快速上手吧Android 学习笔记让我们快速上手吧 Google 的 Android SDK 发布也有一段时间了,一直想研究一下却苦于找不到时间。 利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的 gPhone。 SDK 的下载与安装并不复杂, 网上也有不少同学已经进入状态了, 我就不再重复了吧。 今天主要讨论的,还是永远不变的话题:Hello World. 1.最简单的 HelloWorld1.最简单的 HelloWorld 安装了 SDK 后,直接生成一个 Android Project,一句代码不用写,就能跑出一个最 简单的 HelloWorld 例程。我们看一下它的代码: public void onCreate(Bundle icicle) 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 下的资源描述被自动修改)。 这 个 文 件 很 好 读 , 一 个 描 述 了 这 是 一 个 线 性 排 列 的 布 局 , android:orientation=vertical 表示所有组件将纵向排布。而经典的 Hello World 是用 一个 TextView 来展示的。 由此,我们知道,Android 的程序从一个 Activity 派生出来,并且从它的 onCreate 开始启动;Android 里要显示的组件用 XML 文件描述而不用在代码中硬编码(这是一个好 的习惯,我们应该从一开始就坚持下去); 2.让 Button 来说 Hello World2.让 Button 来说 Hello World 上面的例子是 ADT 自动生成的代码,似乎与我们一点关系也没有。那我们来改一下代码, 因为在 windows 平台上的 Helloworld 经常是由一个按钮触发的,所以,我们想第二个 Helloworld 应该是这样的:加一个按钮和文本输入框,单击按钮后在原来的 TextView 后 面加上输入框中输入的文字。 第一步是,增加一个 Button 和一个 EditText,与 TextView 一样,它们也在 main.xml 里 描述一下: 这里有两个地方要注意:id=+id/go,这表示需要一个唯一的 UID 来作为 Button 的 ID, 它的引用名是 go。还有一个是 android:text=string/go 表示这个按钮的文本不是直接 写有 main.xml 里了,而是来源于另一个资源描述文件 strings.xml 里,本例中的 strings.xml 如下: helloTwo 提示 你好,中国 确定 浏览 然后,在代码里(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 一下看看效果。 3. 再让菜单 Say Hello3. 再让菜单 Say Hello 从 API 文档中我们看到 Activity 中有两个函数:onCreateOptionsMenu 和 onOptionsItemSelected,显示,这个 OptionsMenu 就是所谓的上下文菜单(在 GPhone 的模拟器上,有个键专用于弹出这个菜单)。下面我们就为这个 HelloWorld 例子加上一 个菜单,并且让它可以 Say hello。 这次,我们不涉及到资源的描述文件了,而是直接使用这两个函数来实现,其实代 码也很简单,所以,我们再增加一个退出应用的功能(否则每次都是按取消键退出应用 显示太不专业了)。 代码如下: public boolean onCreateOptionsMenu(Menu menu) super.onCreateOptionsMenu(menu); menu.add(0,1,“say hello“); menu.add(0,2,“exit“); return true; public boolean onOptionsItemSelected(Item item) 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.stri ng.ok_dialog), true); break; case 2: finish(); break; 在 CreateOptionsMenu 时,我们简单地增加两个菜单项,menu.add(组 ID,项 ID,显 示文本),(注意:这里我直接将文字写在代码里,这并不提倡)。然后,在 OptionsItemSelected 事件中,我们根据选中的菜单项做相应处理,如果选中 1,则弹出 一个对话框显示资源文件中的“你好,中国”,如果选中 2 则退出应用。 AlertDialog.show 是一个静态方法,类似于我们在 WIN 平台上经常使用的 MessageBox 一样,很方便的。 来源:http:/www.sf.org.cn/Android/lumen/20976.html Android 学习笔记(2)初识 ActivityAndroid 学习笔记(2)初识 Activity 根据文档的解释,Activity 是 Android 开发中非常重要的一个基础类。我把它想像 成 J2ME 中的 Display 类,或者是 Win32平台上的 Form 类,也许不准确,但是它的重要性 我觉得应该是一样的(当然,如果我们写的是一个没有界面的应用,例如后台运行的服 务之类的,可以不用 Display 的)。 1. 在一个 Activity 中使用多个 View1. 在一个 Activity 中使用多个 View 如果把 Activity 看作 MVC 中的 Control?它负责管理 UI 和接受事件 (包括用户的输 入) , 虽然说一个 Activity 通常对应一个屏幕, 但事实上, 我们是可以只用一个 Activity 管理多个不同的 View 来实现简单的逻辑。 首先,我们增加一个新的资源描述 layout/second.xml。 除了一个“Hello 中国”以外,增加一个按钮可以返回前一个界面。然后,在代码中 我们要为 helloTwo 增加两个方法,setViewOneCommand 和 setViewTwoCommand,分别处 理一下在不同界面时,从资源里加载组件并为组件绑定一个事件处理器。 public void setViewOneCommand() Button btn = (Button)findViewById(R.id.go); btn.setOnClickListener(new View.OnClickListener() public void onClick(View v) helloTwo.this.setContentView(R.layout.second); helloTwo.this.setViewTwoCommand(); ); Button btnExit=(Button)findViewById(R.id.exit); btnExit.setOnClickListener(new View.OnClickListener() public void onClick(View v) helloTwo.this.finish(); ); public void setViewTwoCommand() Button btnBack=(Button)findViewById(R.id.go2); btnBack.setOnClickListener(new View.OnClickListener() public void onClick(View v) helloTwo.this.setContentView(R.layout.main); helloTwo.this.setViewOneCommand(); ); 最后,我们需要在 onCreate 的时候,也就是启动后的 main 界面上设置一下按钮事 件处理器。新的 onCreate 方法如下: public void onCreate(Bundle icicle) super.onCreate(icicle); setTheme(android.R.style.Theme_Dark); setContentView(R.layout.main); setViewOneCommand(); 编译,运行,OK。 2. 还是回到正道上,多个 Activity 之间的跳转2. 还是回到正道上,多个 Activity 之间的跳转 Android 中提供一个叫 Intent 的类来实现屏幕之间的跳转,按文档的说法,似乎他 们也建议采用这种方法,Intent 的用法比较复杂,现在我先看看它最简单的用法。 先在应用中增加两个 Activity,这需要修改 AndroidManifest.xml文件了,如下: 很简单,就是加一个标签而已,新标签的 class 是.HelloThreeB,显示的应用标题 与前一个 Activity 一样而已,然后第二步就是修改一个 HelloThree 类的实现,在 onCreate 方法中绑定按钮的事件处理器: public void onCreate(Bundle icicle) super.onCreate(icicle); setTheme(android.R.style.Theme_Dark); setContentView(R.layout.main); setViewOneCommand(); public void setViewOneCommand() Button btn = (Button)findViewById(R.id.go); btn.setOnClickListener(new View.OnCli
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号