假使现在有三个Activity:Activity01、Activity02和Activity03。Activity和Activity02都要通过Intent向Activity03传递数据,在Activity03中怎样知道数据是从哪个Activity传递过来的呢?可以使用Action来实现这个功能。只要在Activity01和Activity02中为Intent设置不同的Action,在Activity03中使用Intent.getAction方法将得到的Action与我们之前设置的Action作对比,就可以知道数据是从哪个Activity传递过来的。

Activity01.java

package com.playboy.test3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class Activity01 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        }

    public void onClick(View view) {
    	switch(view.getId()) {
    	case R.id.button01:
    		Intent intent = new Intent();
			intent.setClass(Activity01.this, Activity02.class);

			startActivity(intent);
    		break;

    	case R.id.button02:
    		Intent intent2 = new Intent();
	        intent2.setAction("ACTION_01_TO_03");
	        intent2.setClass(Activity01.this, Activity03.class);

	        Bundle bundle = new Bundle();
	        bundle.putString("date", "December 25th");
	        bundle.putString("holiday", "Christmas");
	        intent2.putExtras(bundle);

	        startActivity(intent2);
    		break;
    	}

    }

}

Activity02.java


package com.playboy.test3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Activity02 extends Activity {

	Button button03;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity02);

		button03 = (Button)findViewById(R.id.button03);
		button03.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction("ACTION_02_TO_03");
				intent.setClass(Activity02.this, Activity03.class);

				Bundle bundle = new Bundle();
				bundle.putString("date", "January 1th");
				bundle.putString("holiday", "New Year");
				intent.putExtras(bundle);

				startActivity(intent);
			}

		});
	}

}

Activity03.java


package com.playboy.test3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Activity03 extends Activity {

	TextView textView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity03);

		textView = (TextView)findViewById(R.id.textview);

		Intent intent = getIntent();
		String action = intent.getAction();
		Bundle bundle = intent.getExtras();

		String string = action + ": " + bundle.getString("date") +
		" - " + bundle.getString("holiday");

		textView.setText(string);
	}

}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button android:id="@+id/button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="@string/button01" />

    <Button android:id="@+id/button02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="@string/button02" />

</LinearLayout>

activity02.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button android:id="@+id/button03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button03" />

</LinearLayout>

activity03.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

   <TextView android:id="@+id/textview"
       android:layout_width="match_parent"
       android:layout_height="wrap_content" />

</LinearLayout>

AndroidManifest.xml

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

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".Activity01"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Activity02"
            android:label="@string/app_name"></activity>
        <activity
            android:name=".Activity03"
            android:label="@string/app_name"></activity>
    </application>

</manifest>

device-2011-12-23-233245    device-2011-12-23-233306

device-2011-12-23-233318    device-2011-12-23-233333

原创文章,转载请注明: 转载自伟伟软件

本文链接地址: http://www.fac6.com/317.html

 评论

(required)

(required)

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
© 2010-2012 伟伟软件 Suffusion theme by Sayontan Sinha