zoukankan      html  css  js  c++  java
  • Android应用程序中的多个Activity的显示创建和调用



    布局文件:

    <LinearLayout 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"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="openActivity"
            android:text="开启第二个Activity" />
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="openSystemActivity"
            android:text="开启系统的Activity" />
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="checkConnection"
            android:text="检測网络状态" />
    
    </LinearLayout>
    主Activity的代码
    package com.examp.manyactivity;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
    
    /**
     * 案例演示的是显示的激活Activity
     * 
     * @author MartinDong
     * 
     */
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	}
    
    	/**
    	 * 用户想要打开第二个界面的时候
    	 * 
    	 * @param view
    	 */
    	public void openActivity(View view) {
    		// 创建意图对象
    		Intent intent = new Intent();
    		// 方便调用setComponent与一个明白的类名。

    // 相当于创建了一个新的组件 // 会话位置|指定要激活的详细的Activity intent.setClassName(this, "com.examp.manyactivity.SecondActivity"); // 另外一种方式,是在创建意图对象的时候进行指定Activity // Intent intent2 = new Intent(this, SecondActivity.class); // 激活一个Activity startActivity(intent); } /** * 开启系统中的Activity<br> * 案例演示的是开启图库的Activity * * @param view */ public void openSystemActivity(View view) { /* * 05-31 07:42:44.581: I/ActivityManager(150): START * {act=android.intent.action.MAIN * cat=[android.intent.category.LAUNCHER] flg=0x10200000 * cmp=com.android.gallery/com.android.camera.GalleryPicker u=0} from * pid 282 */ Intent intent = new Intent(); intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker"); startActivity(intent); } /** * 检測网路状态 * * @param view */ public void checkConnection(View view) { /* * 05-31 08:03:01.848: I/ActivityManager(150): START * {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings * (has extras) u=0} from pid 306 因为这里4.0的网络的管理须要传入附加数据,本功能使用2.3的虚拟机<br> * 05-31 08:05:47.072: I/ActivityManager(61): Starting: Intent { * act=android.intent.action.MAIN * cmp=com.android.settings/.WirelessSettings } from pid 168 */ // 检測网路的连接状态 // 创建连接管理对象 ConnectivityManager cm = (ConnectivityManager) this .getSystemService(Context.CONNECTIVITY_SERVICE); // 须要的权限 android.Manifest.permission.ACCESS_NETWORK_STATE // 获取网络的连接信息 NetworkInfo info = cm.getActiveNetworkInfo(); // 假设没有不论什么的网络信息info为null; if (info != null && info.isConnected()) { Toast.makeText(this, "网络可用......", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "网不可用,请设置......", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings"); startActivity(intent); } } }


    第二个Activity文件:

    package com.examp.manyactivity;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    /**
     * 自己定义的Activity<br>
     * 必需要继承Activity<br>
     * Activity是系统的四大组件之中的一个<br>
     * 操作系统想要找到Activity就必须在清单文件AndroidManifest.xml进行注冊<br>
     * 
     * 
     * @author MartinDong
     * 
     */
    public class SecondActivity extends Activity {
    
    	/**
    	 * 一般都会重写的方法,用途大都是初始化一些数据,和程序的界面<br>
    	 * Activity创建的时候进行调用
    	 */
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		// 设置显示的布局
    		setContentView(R.layout.activity_tow);
    
    	}
    
    }
    

    第二个Activity相应的布局文件:

    <?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" >
    
        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <RatingBar
            android:id="@+id/ratingBar2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <CheckedTextView
            android:id="@+id/checkedTextView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="CheckedTextView" />
    
        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <ProgressBar
            android:id="@+id/progressBar2"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="246dp"
            android:layout_height="match_parent" />
    
    </LinearLayout>

    清单文件的配置:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.examp.manyactivity"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="18" />
    
        <!-- icon:指定应用程序的图标;label:指定应用程序的名称; -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
    
            <!-- Activity的注冊 -->
            <!-- 假设Activity不进行icon,label的设置,那么将默认的使用应用application的icon,label 的设置 -->
            <!-- name指定的是布局文件相应的Activity类 -->
            <activity
                android:name="com.examp.manyactivity.MainActivity"
                android:label="@string/app_name" >
    
                <!--  -->
                <intent-filter>
    
                    <!-- 告诉Android的系统这是应用的主界面 -->
                    <action android:name="android.intent.action.MAIN" />
                    <!-- 告诉Android的系统创建一个应用图标 -->
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name="com.examp.manyactivity.SecondActivity"
                android:label="@string/app_name" >
            </activity>
        </application>
    
    </manifest>

    注:本案例的网络查看状态仅仅能在2.3的模拟器上使用;


    Demo源代码下载:

    http://download.csdn.net/detail/u011936142/7429455








  • 相关阅读:
    c语言排序算法
    冒泡 选择排序
    冒泡排序算法
    Pandas数据预处理
    Mongodb的安装和配置
    Mysql练习题
    5 根据过去的行为能否预测当下
    Sklearn逻辑回归
    4 如何通过各种广告组合获取更多的用户
    Sklearn多元线性回归
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5234213.html
Copyright © 2011-2022 走看看