7th-Activity基础

第一部分:知识储备

一、结构

Activity主要负责创建显示窗口,一个Activity通常就代表了一个单独的屏幕。  它是用户唯一可以看得到的东西,一个activity要经历激活状态、运行状态、暂停状态、停止状态和终止状态,通过栈来管理的。

二、activity的实现

  创建时,都必须用extends关键字来继承Android中的android.app.Activity作为父类。

  一般情况下,所有的Activity都应该实现自己的onCreate()方法进行初始化设置,大部分还应该实现onPause()方法来准备终止与用户的交互,至于其他方法,则可以在需要时实现,当实现这些方法的时候,需要注意的是,一定要覆盖父类中的对应方法。

  在启动新的activity的时候,首先调用oncreat()方法,然后调用setContentView()方法,该方法的作用是根据activity_main.xml文件中的配置代码来设置activity的界面内容。该方法中所需的参数是R.layout.activity_main,其中R表示在创建项目时自动生成的R.java文件,该文件的代码不要手工修改。

  另一个固定语句是:super.onCreat(savedInstanceState)的功能是执行父类的onCreat构造函数,其中的savedInstanceState是当前Activity的状态信息。

三、启动另一个Activity

  一个activity可以启动另一个activity,在这里启动的activity被称为“宿主activity”,被启动的称为“随从activity”。

  宿主activity既能启动同一个应用程序下的其他activity,也可以启动其他应用程序下的其他activity。一般来讲,activity之间通过intent来传递消息的,两个函数可以实现,startActivity()和startActivitForResult(),通过startActivity()方式启动activity时,随从activity在关闭时不会给宿主activity任何返回值;然而通过startActivitForResult()方式启动时,关闭会给宿主返回一个值。

四、举例说明

 1、在activity中设置intent方法:

 1 package com.example.ex03_09;
 2 
 3 import android.support.v7.app.ActionBarActivity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.MenuItem;
 7 
 8 import android.view.View;
 9 import android.widget.Button;
10 import android.content.Intent;
11 
12 public class EX03_09Activity extends ActionBarActivity {
13 
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_ex03_09);
18         
19         Button b1=(Button) findViewById(R.id.button1);
20         b1.setOnClickListener(new Button.OnClickListener()
21                 {
22                    public void onClick(View v)
23                    {
24                        Intent intent=new Intent();
25                        intent.setClass(EX03_09Activity.this, EX03_09_1Activity.class);
26                        
27                        startActivity(intent);
28                        EX03_09Activity.this.finish();
29                    }
30                 });
31     }
32 
33     @Override
34     public boolean onCreateOptionsMenu(Menu menu) {
35         // Inflate the menu; this adds items to the action bar if it is present.
36         getMenuInflater().inflate(R.menu.ex03_09, menu);
37         return true;
38     }
39 
40     @Override
41     public boolean onOptionsItemSelected(MenuItem item) {
42         // Handle action bar item clicks here. The action bar will
43         // automatically handle clicks on the Home/Up button, so long
44         // as you specify a parent activity in AndroidManifest.xml.
45         int id = item.getItemId();
46         if (id == R.id.action_settings) {
47             return true;
48         }
49         return super.onOptionsItemSelected(item);
50     }
51 }

2、修改相应的xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context="com.example.ex03_09.EX03_09Activity" >
10 
11     <TextView
12         android:id="@+id/textView1"
13         android:layout_width="fill_parent"
14         android:layout_height="wrap_content"
15         android:text="@string/act1" />
16 
17     <Button
18         android:id="@+id/button1"
19         android:layout_width="wrap_content"
20         android:layout_height="wrap_content"
21         android:layout_alignLeft="@+id/textView1"
22         android:layout_below="@+id/textView1"
23         android:layout_marginTop="26dp"
24         android:text="Go to activity2" />
25 
26 "
27 
28 </RelativeLayout>

3、new-新建activity

 1 package com.example.ex03_09;
 2 
 3 import android.view.View;
 4 import android.widget.Button;
 5 import android.content.Intent;
 6 
 7 import android.support.v7.app.ActionBarActivity;
 8 import android.os.Bundle;
 9 import android.view.Menu;
10 import android.view.MenuItem;
11 
12 public class EX03_09_1Activity extends ActionBarActivity {
13 
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.activity_ex03_09_1);
18         
19         Button b2=(Button) findViewById(R.id.button2);
20         b2.setOnClickListener(new Button.OnClickListener()
21                 {
22                    public void onClick(View v)
23                    {
24                        Intent intent=new Intent();
25                        intent.setClass(EX03_09_1Activity.this, EX03_09Activity.class);
26                        
27                        startActivity(intent);
28                        EX03_09_1Activity.this.finish();
29                    }
30                 });
31     }
32 
33     @Override
34     public boolean onCreateOptionsMenu(Menu menu) {
35         // Inflate the menu; this adds items to the action bar if it is present.
36         getMenuInflater().inflate(R.menu.ex03_09_1, menu);
37         return true;
38     }
39 
40     @Override
41     public boolean onOptionsItemSelected(MenuItem item) {
42         // Handle action bar item clicks here. The action bar will
43         // automatically handle clicks on the Home/Up button, so long
44         // as you specify a parent activity in AndroidManifest.xml.
45         int id = item.getItemId();
46         if (id == R.id.action_settings) {
47             return true;
48         }
49         return super.onOptionsItemSelected(item);
50     }
51 }

4、修改xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".EX03_09Activity"
10     tools:ignore="HardcodedText" >
11 
12 <TextView
13         android:id="@+id/textView1"
14         android:layout_width="fill_parent"
15         android:layout_height="wrap_content"
16         android:text="@string/act2" />
17 
18     <Button
19         android:id="@+id/button2"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:layout_alignLeft="@+id/textView1"
23         android:layout_below="@+id/textView1"
24         android:layout_marginTop="26dp"
25         android:text="Go to activity1" />
26 
27 
28 </RelativeLayout>

5、效果呈现

点击后:

posted @ 2016-02-19 19:17  biyoner  阅读(210)  评论(0编辑  收藏  举报