`
Bauble
  • 浏览: 65996 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android05_Intent

阅读更多

一、多个Activity之间的关系

当从Activity01跳转到Activity02时,必须要启动Activity01的startActivity方法,该方法传递一个Intent对象到Activity02中,所以Intent在多个Activity之间起到了至关重要的作用。

 

二、Intent的基本作用

Intent是一个对象,且包含了一组信息:

1)*Component name:指定需要启动的另一个Activity的名字

 

2)*Action:指定当前Activity启动了另一个Activity时需要做哪些动作,如ACTION_CALL,ACTION_EDIT等等

 

3)*Data:Activity之间传输的数据,是一个URL

 

4)Category

 

5)*Extras:额外添加的信息,是一些键值对

 

6)Flags

 

三、在一个Activity当中启动另一个Activity的方法

 

新建项目Activity02:


       

Activity02.java——初始activity

 

package com.android.activity;

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 {
	
	private Button myButton = null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        myButton = (Button) findViewById(R.id.myButton);
        myButton.setText("跳转到另一个activity");
        myButton.setOnClickListener(new MyButtonListener());    //向myButton添加点击监听器
    }
    
    class MyButtonListener implements OnClickListener{ 
    	public void onClick(View v) {	
			Intent intent =  new Intent();  //生成一个Intent对象
			intent.setClass(Activity02.this, OtherActivity.class);  //第一个参数设置是原Activity,第二个参数是要请求跳转到的activity
			Activity02.this.startActivity(intent);//执行
		}

    }
}

Intent的setClass方法有两个参数,intent相当于一个请求,第二个参数则表示这个请求要到哪里去。

 

main.xml——Acitivity02.java这个activity的布局文件

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <Button 
    	android:id="@+id/myButton"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    />
</LinearLayout>

 

 

string.xml

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Activity02!</string>
    <string name="app_name">Activity测试02</string>
    <string name="othername">Other Activity</string>
</resources>

 

 

OtherActivity.java——跳转后的Activity

 

package com.android.activity;

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

public class OtherActivity extends Activity {
	
	private TextView myTextView = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		
		myTextView = (TextView)findViewById(R.id.myTextView);
		myTextView.setText("这是另一个activity");
	}
}

 

 

other.xml——OtherActivity.java的布局文件

 

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

 

 

AndroidManifest.xml——注册OtherActivity

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Activity02"
                  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=".OtherActivity"
        		  android:label="@string/othername">
       	</activity>

    </application>
</manifest>

 

 

运行结果:

初始界面:


                   

跳转后界面:


                   

四、使用Intent在Activity之间传递数据的基本方法

Activity02.Java

 

Intent intent =  new Intent();
intent.putExtra("param", "haha"); //添加参数
intent.setClass(Activity02.this, OtherActivity.class);
Activity02.this.startActivity(intent);

  OtherActivity.java

 

Intent intent = getIntent();
String param = intent.getStringExtra("param"); //从intent中取得参数
System.out.println("intent传递的参数:"+param);
 

 

  • 大小: 36.3 KB
  • 大小: 68.3 KB
  • 大小: 21.3 KB
  • 大小: 17.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics