====================================
下面文字只是节选,完整在附件中
====================================
4 创建一个应用程序
我们就简单的说明下,使用eclipse,创建一个android的项目:
Activity
创建的项目中,src目录包含着一些基本基于报名的的java代码。如果创建的包名叫做com.commonsware.android,那么就会创建如下的tree结构:src/com/commonsware/android/
加入在创建项目的时候,我们创建了一个叫做Now 的Activity.,那么我们就会在src下看到一个Now.java文件。
生成:
打开Now.java文件,会看到
package com.commonsware.android;
import android.app.Activity; import android.os.Bundle;
public class Now extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } |
我们做如下修改:
Ps:有java基础的朋友会很容易看懂代码的作用的
package com.commonsware.android;
import java.util.Date;
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button;
public class Now extends Activity implements View.OnClickListener { /** Called when the activity is first created. */ Button btn; int i = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); btn = new Button(this); btn.setOnClickListener(this);
setContentView(btn); } public void updateTime() { i++; btn.setText("hello"+i); } public void onClick(View v) { updateTime(); } } |
运行:
选中Row这个Activity,右键 run.as ..-----Open Run Dialog----New Configuration---选中需要运行的项目~~~~浏览即可
接着选择Taget
可以选择自己的Android模拟器
接着就可以运行了~~
解析Activity
下面让我们检查下下面的代码片段:
包声明应该跟我们创建project的时候保持一致。当需要引用别的包的时候,需要导入
同时,要记住,不是所有的JAVASE的类都能在Android中获得的。
可以看到,一个Activity,首先是public类型的并继承自 android.Activity这个基类。在我们这个例子中,这个Activity包含一个button按钮(记住哦,Activity我们就可以理解为一个界面,可以接受用户交互行为的)。简单的,如果我们希望按钮能够进行用户交互,比如用户按下按钮的事件,我们只需要让整个Activity类实现OnClickListener这个接口,并实现相应的方法即可。比如:
OnCreate()方法是在Activity活动启动的时候,就会被调用。第一行代码,是调用父类的相应方法,这是我们必须要做的,因为有时候我们自己做不了,只有让父类来做。我们需要对Activity进行初始化的工作,基本上都在oncreate()方法中进行。
在我们这个例子中,我们然后定义了一个按钮的实例化对象,( new Button(this)),并告诉它,将所有的按钮按下事件都传递给这个Activity(通过 setOnClickListener()),调用一个私有方法updateTime(),并最后设置了这个Activity所要显示的界面(setContentView();
使用过java Swing的朋友应该知道,比如一个 Jbutton 被按下,就会生成一个ActionEvent事件对象,这个对象就会被传递给ActionListener 监听器,这个按钮事先已经注册(或配置)到整个监听器中了。在Android中,一个按钮按下就被导致一个OnClickListener的实例调用一个onClick()方法,当然事先这个按钮也会先注册好。而这个Listener,是由某一个View(视图)提供的,这个视图恰恰是启动(或者是触发)这个事件(比如这里的click事件)。我们这里,这个View就是button。我们现在简单的理解就是:所有的视图界面上的控件,都是View,并且都可以提供各种监听接口来监听按下,触摸,状态等事件的发生。
继续,当我们打开这个Activity,oncreate方法被执行。当button被按下,就会调用onClick()方法,在这个方法里执行update更新。
程序运行,,,,使用eclipse,只要run as。。即可
我们顺便看下此时别的文件:
看系统为我们创建了这么一个Android项目哦
除了Now是我们自己写的,别的,,,,,,貌似都没有动吧~~
项目的配置文件
因为我们做了如下的配置:
那么,我们这个程序就会在手机的主界面中显示出来,我们看下
上面的Now就是我们的这个小例子了~
虽然我们没有用到下面这个文件,但是系统也会自动生成一个默认的
这个文件下面就会降到,是android的布局界面
下面是Res文件夹
里面包含了基本的三个子文件夹:
drawable包含图片的,我们这里是系统自动分配的icon.png
layout:包含的是系统中需要用到的布局,均为xml文件
values:包含系统需要用到一些资源常量,比如字符串Strings,颜色Color等。我们后面都会介绍到~
需要注意的是gen文件夹,这个文件夹我们是不需要手动修改的,里面只有一个R.java文件。
这个R类里面建立了项目中res资源文件夹中所有资源的索引,为每一个资源都建立了一个int类型的索引值
我们看一眼
都是静态类型的常量,作为资源的id,我们可以在程序里用R.xxx.xxx的方式来访问这些资源哦~~
还有,R是系统自动创建的,我们不能修改~~