1、初识Activity

时间:2021-11-29 21:18:41

Activity是Android的基本组成部分,是人机交互程序入口;一个Android项目由多个Activity组成,所有的显示组件必须放在Activity上才能进行显示。

(1)Android项目工作区构成

1、初识Activity

如上图所示,一个Android项目工作区由几部分构成,其中src目录中存放的就是Activity文件;gen下存放的是R文件,R.java中保存了该项目中所有的资源ID;res目录下是存放图片、网页、文本等资源,其中drawable中存放图片,它有高中低三种分辨率的目录,layout是存放xml布局文件,主要用于排列不同的显示组件,values中存放一些资源信息,例如定义数组数据、颜色数据、尺度数据、字符串、样式等,raw中存放一些原生文件,比如视频、音频等,可以使用Resources.getRawResource()方法获得这些资源;AndroidManifest.xml是Android的主要配置文件,用来配置各个组件或者一些访问权限。

(2)简单的Android程序

一个Android项目主要有三方面,一是布局文件,二是Activity,三是资源文件,先在布局文件中写好组件布局,再用Activity调用布局文件进行显示,Activity也还会进行一些人机交互的操作,布局文件和Activity都可以调用资源文件。下面是一个简单的Android程序实例:

首先,建立一个activity_main.xml布局文件,布局中只有两个文本框和一个按钮,代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello_world" />

<TextView

android:id="@+id/mytext"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<Button

android:id="@+id/mybutton"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

</LinearLayout>

建立一个MainActivity.java类,该类继承Activity,调用显示刚才的布局文件,并对其中的一些组件进行控制,代码如下:

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//调用布局文件

TextView text = (TextView)findViewById(R.id.mytext);//根据id获取组件

Button button = (Button)findViewById(R.id.mybutton);

text.setText("id控制TextView组件");//设置文本框内容

button.setText("id控制Button组件");//设置按钮文字信息

}

}

写完一个Activity类之后一定要在AndroidManifest.xml中进行注册,不然会运行报错,这个错误很多人都会粗心大意的犯过,一定要谨记!!!(以后的文章将不再提醒)注册代码如下:

<activity

android:name="com.example.chapter3.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

其中action android:name="android.intent.action.MAIN" />表示该Activity为该项目的主类,这一点类似于C++项目中会有多个cpp文件,但是只有一个程序运行入口文件。该程序运行效果如下:

1、初识Activity