Intent译为意图或请求,Intent是一种运行时绑定(run-time binding)机制,它能在程序运行时连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或意愿,Android会根据Intent的内容选择适当的组件来完成请求。
Android中三个基本组件Activity、Service和Broadcast Receiver都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式,下面看一下两个Activity之间的切换和数据传递是如何通过Intent完成的。
先创建两个class和.xml文件,把两个Activity去AndroidMainfest.xml清单文件中去注册一下,我们在Aty1.java文件中setContentView(R.layout.aty1),在Aty2.java文件中setContentView(R.layout.aty2),我们把四个文件列出来。
package com.example.csdn_activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Aty1 extends Activity {
private Button btnStartActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aty1);
btnStartActivity=(Button)findViewById(R.id.btnstartActivity);
btnStartActivity.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(Aty1.this,Aty2.class);
Bundle data=new Bundle();
data.putString("txt","Bonnie I love u");
intent.putExtras(data);
startActivity(intent);
}
});
}
}
package com.example.csdn_activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Aty2 extends Activity {
private TextView tvOut;
private Button btnClose;
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.aty2);
btnClose=(Button) findViewById(R.id.btnstartActivity);
btnClose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
tvOut=(TextView)findViewById(R.id.tvOut);
Bundle data=getIntent().getExtras();
String txt=data.getString("txt");
tvOut.setContentView(txt);
}
}