【Android開發-8】生命週期,Activity中打開另一個Activity

前言:生命中有不少人陪伴本身走過一輩子中的某段旅程,僅僅是有些人僅僅是某階段出現,有些人卻陪伴本身很是久。就像小學、中學、高中、大學,那些之前覺得會長久擁有的,當經歷過天涯各地地忙碌於生活,或如意。或失意;漸漸地那些畫面僅僅剩回顧。天涯各自安命,能在一塊兒的就盡力珍惜吧,不在一塊兒地就衷心地祝福,咱們都需要一種姿態生活下去!Android中的Activity的生命中,咱們經常需要打開另一個Activity,即另一個界面。這個可能出現的時間很是短暫,而後又回到主界面。但是這兩個Activity都在各自的生命週期中經歷了生命中的某個階段。html


該項目在上篇項目中加入相關內容,進行演示。項目結構例如如下:java


第一步:在layout中加入另一個界面佈局,即activity_sub.xml,代碼內容例如如下:android

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 >

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    
    <Button 
        android:id="@+id/close"
        android:layout_below="@id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/close" 
        />

</RelativeLayout>

固然主界面activity_sub.xml內容又一次佈局下。代碼例如如下:app

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    
    <Button 
        android:id="@+id/open"
        android:layout_below="@id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/open" 
        />

</RelativeLayout>

第二步:在values文件夾下的strings.xml中編寫代碼內容例如如下:

<?

xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">TestActivity</string> <string name="hello_world">Test Activity life cycle</string> <string name="close">關閉</string> <string name="open">打開另一個界面</string> </resources> ide


注:這個文件裏的東西是layout界面佈局中要用到的東西;比方android:text="@string/open"中的open就是相應<string name="open">打開另一個界面</string>,這個界面佈局完後,程序界面button就會顯示:打開另一個界面


第三步:在src中新建一個文件SubActivity.java,代碼編寫例如如下:佈局

package com.wyz.testactivity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SubActivity extends Activity {

	private static final String TAG="SubActivity";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sub);
		
		Log.d(TAG, "生命週期--建立階段(onCreate)");
		
		Button btn_close = (Button)findViewById(R.id.close);
		
		btn_close.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				SubActivity.this.finish();	//關閉
			}
			
		});
	}
	
	protected void onStart()
	{
		super.onStart();
		Log.d(TAG, "生命週期--開始階段(onStart)");
	}
	
	protected void onResume()
	{
		super.onResume();
		Log.d(TAG, "生命週期--恢復階段(onResume)");
	}
	protected void onPause()
	{
		super.onPause();
		Log.d(TAG, "生命週期--暫停建立階段(onPause)");
	}
	
	protected void onStop()
	{
		super.onStop();
		Log.d(TAG, "生命週期--中止建立階段(onStop)");
	}
	
	protected void onRestart()
	{
		super.onRestart();
		Log.d(TAG, "生命週期--從新啓動階段(onRestart)");
	}
	
	protected void onDestory()
	{
		super.onDestroy();
		Log.d(TAG, "生命週期--銷燬階段(onDestory)");
	}
}

接着咱們也要改動下MainActivity.java,讓它可以打開子界面:

package com.wyz.testactivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private static final String TAG="MainActivity";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Log.d(TAG, "生命週期--建立階段(onCreate)");
		
		Button btn_open = (Button)findViewById(R.id.open);
		
		btn_open.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				startActivity(new Intent(MainActivity.this, SubActivity.class));	//打開另一個界面
			}
			
		});
	}
	
	protected void onStart()
	{
		super.onStart();
		Log.d(TAG, "生命週期--開始階段(onStart)");
	}
	
	protected void onResume()
	{
		super.onResume();
		Log.d(TAG, "生命週期--恢復階段(onResume)");
	}
	protected void onPause()
	{
		super.onPause();
		Log.d(TAG, "生命週期--暫停建立階段(onPause)");
	}
	
	protected void onStop()
	{
		super.onStop();
		Log.d(TAG, "生命週期--中止建立階段(onStop)");
	}
	
	protected void onRestart()
	{
		super.onRestart();
		Log.d(TAG, "生命週期--從新啓動階段(onRestart)");
	}
	
	protected void onDestory()
	{
		super.onDestroy();
		Log.d(TAG, "生命週期--銷燬階段(onDestory)");
	}
}

最後一步:改動下AndroidManifest.xml,在</application>節點前加入內容例如如下:

 <activity  
            android:name=".SubActivity"  
            android:label="@string/app_name" >  
 </activity> 

這個加入的做用是:讓程序知道有另一個界面存在了!

注:android:name就是子界面的類名post


界面效果例如如下:this

相關文章
相關標籤/搜索