Intent简介
Intent中文翻译为“意图”,它是Android程序中各个组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
Intent一般用于启动Activity、启动服务、发送广播等,承担了Android应用程序三大核心组件相互间的通信功能。
1)Intent启动Activity的方法有:
startActivity(Intent intent)
startActivityForResult(Intent intent,int code)
2)显式意图即在通过Intent启动Activity时,需明确指定激活组件的名称。如果需要在本应用中启动其他的Activity时,可以使用显式意图来启动Activity。
Intent intent = new Intent(this, Activity02.class);
startActivity(intent);
3)隐式Activity
相对于显式Intent,隐式Intent则含蓄很多,它并不指明我们想要启动哪一个Activity,而是指定了一系列更为抽象的action和category等信息,而让系统去分析这个Intent,并帮我们找到合适的Activity去启动。
代码示例:点击按钮后,所有Action为VIEW的Activity被筛选出来,由用户进一步选择,我们自己定义的SecondActivity,将他的action设置为Action.VIEW,则它也会显示出来供用户选择。
一。
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/button2"
android:layout_below="@+id/button1"
android:text="飞往火星" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/button1"
android:layout_marginTop="25dp"
android:text="飞往月球" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginTop="106dp"
android:ems="10"
android:inputType="textPersonName"
android:text="textPersonName" >
<requestFocus />
</EditText>
package com.example.xpa;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button button1;
private static final int Mars=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1.将布局中的组件,转换成对象
button1 = (Button) findViewById(R.id.button1);
// 2.对Button定义事件处理程序,单击按钮,修改TextView的值
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
String content="地球来的消息:我是来自地球上的Tom,火星的朋友你好!";
intent.putExtra("FromEarth", content);
startActivityForResult(intent,Mars);
}
});
}
}
2.package com.example.xpa;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity2 extends Activity {
private TextView textView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
textView1 = (TextView) findViewById(R.id.textView1);
Intent intentt=getIntent();
String costring=intentt.getStringExtra("FromEarth");
textView1.setText(costring);
}
}
3.配置 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.xpa.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>
<activity
android:name="com.example.xpa.MainActivity2"
android:label="第二个Activity" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>