Android中在一个应用程序中定义多个Activity,及启动多个Activity

一、Android中在一个应用程序中定义多个Activity的步骤:

第一步:定义一个类,继承Activity

第二步:在该类当中,覆写Activity当中的onCreate方法

第三步:在AndroidManifest.xml文件当中注册该Activity


二、定义多个Activity实例

第一步:在定义一个类SecondActivity,继承自Activity

第二步:在该类中覆写Activity中的onCreate方法

package com.lkp.s02_01_multiactivity;

import android.app.Activity;
import android.os.Bundle;
//创建多个Activity的步骤
public class SecondActivity extends Activity {	//第一步:定义一个类,继承Activity
	
	//第二步:在该类当中,复写Activity当中的onCreate方法
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.second);//设置一个布局文件
	}

}
第三步:在AndroidManifest.xml文件当中注册该Activity

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.lkp.s02_01_multiactivity.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>
        <!-- 第三步:在AndroidManifest.xml文件当中注册SecondActivity -->
        <activity 
            android:name="com.lkp.s02_01_multiactivity.SecondActivity"
            android:label="SecondActivity">

        </activity>
    </application>

</manifest>
第四步:显然是需要在布局文件中再创建一个xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/secondTextViewId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="第二个Activity"/>"

</LinearLayout>

三、启动一个Activity的方法

第一步:生成一个意图对象(Intent)

第二步:调用setClass方法设置所要启动的Activity

第三步:调用startActivity方法启动Activity

package com.lkp.s02_01_multiactivity;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.os.Build;

public class MainActivity extends Activity {
	
	private Button button;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		if (savedInstanceState == null) {
			getFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		
		button = (Button)findViewById(R.id.buttonId);
		button.setOnClickListener(new buttonListener());
		
		return true;
	}
	class buttonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			//第一步:生成一个意图对象
			Intent intent = new Intent();
			//第二步:调用setClass方法设置所要启动的Activity
			//setClass函数的第一个参数是Context对象
			//Context是一个类,Activity是Context类的子类,也就是说,所有的Activity对象,都可以向上转型为Context对象
			//setClass函数的第二个参数是一个Class对象,在当前场景下,应该填入需要被启动的Activity类的class对象
			intent.setClass(MainActivity.this,SecondActivity.class);
			//第三步:调用startActivity方法启动Activity
			startActivity(intent);
			
			
		}
		
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	/**
	 * A placeholder fragment containing a simple view.
	 */
	public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main, container,
					false);
			return rootView;
		}
	}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值