Android学习总结(一)---Intent

Android用Intent这个特殊的类实现在activity与activity之间的切换。Intent类用于描述应用的功能。在Intent的描述中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有AMIN、VIEW、PICK、EDIT等。而动作队形的数据则以URL的形式表示。例如要查看一个人的联系方式,需要创建一个动作类型为View的Intent,以及表示这个人的URL。

通过解析各种Intent,从一个屏幕导航到导航到另一个屏幕是很简单的。当向前导航时,Activity将会调用startActivity(IntentmyIntent)方法。然后系统会在所有已安装的应用中定义的IntentFilter中查找,找到最匹配的myIntent的Intent对应的Activity。新的Activity接收到myIntent的通知后,开始运行。当startActivity方法被调用时,将触发myIntent的动作,该机制提供了两个关键好处:

1、Activity能够重复利用从其他组建中intent形式产生的请求

2、Activity可以在任何时候被具有相同的IntentFilter的新的Activity取代

下面举例寿命两个Activity之间的的切换

main.xml

<?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="第一个Activity"
    />
	<Button 
	android:text="切换" 
	android:id="@+id/button1" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"
	>
	</Button>
    
</LinearLayout>


main1.xml

<?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="第二个Activity"
    />
	<Button 
	android:text="返回" 
	android:id="@+id/button2" 
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"
	>
	</Button>
    
</LinearLayout>


Activity01.java

 

package cn.myintent;

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 Activity01 extends Activity {
    /** Called when the activity is first created. */
    Button button ;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button=(Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				/*新建一个Intent对象*/
				Intent intent=new Intent();
				/*制定intent要启动的类*/
				intent.setClass(Activity01.this,Activity02.class);
				/*启动一个新的Activity*/
				startActivity(intent);
				/*关闭当前Activity*/
				Activity01.this.finish();
			}
		});
    }
}


 Activity02.java

package cn.myintent;

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 {
    /** Called when the activity is first created. */
    Button button ;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);
        button=(Button) findViewById(R.id.button2);
        button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				/*新建一个Intent对象*/
				Intent intent=new Intent();
				/*制定intent要启动的类*/
				intent.setClass(Activity02.this,Activity01.class);
				/*启动一个新的Activity*/
				startActivity(intent);
				/*关闭当前Activity*/
				Activity02.this.finish();
			}
		});
    }
}


注意该项目使用2个Activity,每一个Activity都要在AndroidMainifest.xml文件中申明

 <application android:icon="@drawable/icon" 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">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值