码迷,mamicode.com
首页 > 其他好文 > 详细

Activity生命周期(一)

时间:2014-07-09 19:08:56      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:android   des   cWeb   style   blog   http   

1. 如何在一个应用程序中定义多个Activity

2. 启动一个Activity的方法

3. Android当中的back stack(历史栈)

 

1. 如何在一个应用程序中定义多个Activity

    bubuko.com,布布扣

     如果将一个Android程序看成一个网站, 一个Activity就是一个网页

     定义多个Activity的方法:

    bubuko.com,布布扣

         

         OnCreate是Activity运行的入口

         Manifest文件是Android的主配置文件, 所有的控件都要在此注册

        

         新建多个Activity在代码中实现的过程

bubuko.com,布布扣

   

     新建一个叫MultiActivity, 继承Activity, 并选择复写Activity的OnCreate方法

 

bubuko.com,布布扣

 

          新建此Activity成功后, 为此Activity新建一个布局文件

bubuko.com,布布扣

       

        选择普通的 LinearLayout 即可 , 加入一个简单的 TextView 在里面

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     
 7     <TextView
 8         android:id="@+id/firstMultiActivity"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         android:text="Hello Mirror"
12         /> 
13 
14 </LinearLayout>

      

           在MultiActivity.java里面选择加载此布局文件

 

 1 package first.pack;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 
 6 public class MultiActivity extends Activity{
 7 
 8     @Override
 9     protected void onCreate(Bundle savedInstanceState) {
10         // TODO Auto-generated method stub
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.multi_main);  //加载
13     }
14     
15 }

 

        最后要在Manifest.xml文件中进行注册

 

bubuko.com,布布扣

 

        点开后出现如下信息

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="first.pack"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="first.pack.MainActivity"  //Activity的名字:包名+类名
            android:label="@string/app_name" >  //程序运行界面的Label名称
            <intent-filter>  //这一段放在哪就使该Activity成为默认Activity
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

           添加代码后如下

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="first.pack"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk
 8         android:minSdkVersion="8"
 9         android:targetSdkVersion="19" />
10 
11     <application
12         android:allowBackup="true"
13         android:icon="@drawable/ic_launcher"
14         android:label="@string/app_name"
15         android:theme="@style/AppTheme" >
16         <activity
17             android:name="first.pack.MainActivity"
18             android:label="@string/FirstMirror" >
19             <intent-filter>
20                 <action android:name="android.intent.action.MAIN" />
21 
22                 <category android:name="android.intent.category.LAUNCHER" />
23             </intent-filter>
24         </activity>
25         
26         <activity
27             android:name="first.pack.MultiActivity"  //包名+类名
28             android:label="@string/SecondMirror" >  //跟主Activity区别开来
29         </activity>
30         
31     </application>
32 
33 </manifest>

 

       

2. 启动一个Activity的方法

    成功定义一个Activity之后就要学会如何启动

    Intent --- 意图

    bubuko.com,布布扣

      目标: 在默认Activity中设置一个按钮,点击就跳到第二个界面

 1 public static class PlaceholderFragment extends Fragment {
 2         
 3         private Button button;
 4 
 5         public PlaceholderFragment() {
 6         }
 7 
 8         @Override
 9         public View onCreateView(LayoutInflater inflater, ViewGroup container,
10                 Bundle savedInstanceState) {
11             View rootView = inflater.inflate(R.layout.fragment_main, container, false);
12             
13             button = (Button)rootView.findViewById(R.id.firstButton);
14             
15             ButtonListener buttonListener = new ButtonListener();
16             button.setOnClickListener(buttonListener);
17             
18             return rootView;
19         }
20         
21         class ButtonListener implements OnClickListener{
22 
23             @Override
24             public void onClick(View v) {
25                 // TODO Auto-generated method stub
26                 Intent intent = new Intent();
27                 //第一个参数是context参数,activity类是Context类的子类,Activity都可向上转型为context
28                 //第二个参数是要启动的activity
29                 intent.setClass(getActivity(),MultiActivity.class); //重要!!!!
30                 startActivity(intent);
31             }            
32         }
33     }

        程序默认运行主界面FirstMirror

        bubuko.com,布布扣

        点击之后,跳转到第二个页面SecondMirror

        bubuko.com,布布扣

 

3. Android当中的back stack(历史栈)

      

      bubuko.com,布布扣

     

      只显示最上的一个Activity, 按后退键会依次显示栈里面的Activity

 

 

Activity生命周期(一),布布扣,bubuko.com

Activity生命周期(一)

标签:android   des   cWeb   style   blog   http   

原文地址:http://www.cnblogs.com/iMirror/p/3831832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!