Activity是一个安卓程序的组成组件,具体表现方式是直观的提供给用户一个屏幕,用户通过和这个屏幕上的内容交互来实现具体功能如:看电影,播放MP3,打电话,发短信等,每个Activity通常都是一个单独的窗口。
一.Activity的创建方法
首先看一个简单的创建Activity的程序。
package pm.activity_01;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
这是个最简单的创建Activity的程序,一般在使用ADT创建一个工程后都会自动添加这部分代码,运行这个程序后只能简单看到一个程序界面并显示一行“helloworld”。这个显示了文字的界面就是一个Activity。在创建Activity之后就可以在onCreate方法里添加你对这个Activity的具体操作。
从上面的程序代码可以看到,要创建一个Activity,首先该类要继承“Activity”这个类,然后调用onCreate方法来创建该Activity,然后调用setContentView方法显示定义的Activity布局文件的内容,这样一个Activity就成功被创建。
二.注册Activity
上面的程序是ADT创建工程时已经自定义给出的,但如果当你想添加一个新的Activity并启动时,程序是无法运行的,因为你的Activity并没有注册。
由于Activity是Android程序的一个组件,所以必须在AndroidMainfest.xml这个文件中进行注册。在使用ADT创建一个工程的时候,ADT都已经主动帮你创建好了一个Activity并已经注册,但是当你的程序需要多个Activity的时候,就必须自己在该xml文件中进行注册。
以下是注册一个Activity的方法:
<activity
android:name=".otherActivity"
android:label="@string/app_name">
</activity>>
这是一个简单注册Activity所必须的代码,其中name必须跟你新建的Activity类名必须相同,否则程序是无法找到你所建的Activity的类。
三.Activity的控件
每个Activity都是由各种控件组成,如按钮,图片,文字等等,要添加这些控件,同样需要先在布局中注册,这个布局文件在res/layout下面。这个文件的作用就是控制对应的Activity中控件的种类以及摆放的位置等。
下面是一个布局文件的代码,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
这个布局文件声明了一个Button属性的控件,就是按钮控件,每个控件都有一个自己的id,在使用android:id="@+id/myButton"这一语句后,ADT会自动帮你在gen这个文件夹下面的R.java文件里面创建一个id并赋值,后续要操作这个控件对象的时候,就可以通过findVIewbyId方法来获取这个控件对象并进行操作。
关于R.java文件。
这个文件列举了一个Android程序所有对象的id,这个文件并不需要自己手动填写,而是你在注册一个控件或者布局文件等的时候,由ADT自动帮你分配的,当你在程序需要调用某个对象的时候,就可以通过调用这个类里面的id来获得或者操作你需要的对象。
四.Activity控件的操作
上面在Activity里面声明了一个Button控件,现在我们可以在Activity里面对其进行操作,以下是代码,
packagepm.activity_01;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
publicclass MainActivity extends Activity {
private Button myButton= null;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton=(Button)findViewById(R.id.myButton);
myButton.setText("我的第一个Button");
myButton.setOnClickListener(newMyButtonListener());
}
class MyButtonListener implementsandroid.view.View.OnClickListener{
public void onClick(View v) {
// TODO Auto-generatedmethod stub
Intent intent = newIntent();
intent.setClass(MainActivity.this,outherActivity.class);
MainActivity.this.startActivity(intent);
}
}
}
上面的代码实现了当按下按钮后,程序会从一个Activity跳转到另外一个Activity,这时就可以对另外的一个Activity进行相关的操作。
通过以上,就实现了一个Activity的简单功能。