在一个项目之中,会由多个Activity程序所组成,那么此时,这多个Activity程序之间就需要进行通讯,而这之间的通讯就依靠Intent完成。
Activity程序支持的Intent操作方法
No.
方法
类型
描述
1
public void startActivity(Intent intent)
普通
启动一个Activity,并通过Intent传送数据
2
public void startActivityForResult(Intent intent, int requestCode)
普通
启动并接收另一个Activity程序回传数据,当requestCode大于0才可以触发onActivityResult()
3
public Intent getIntent()
普通
返回启动当前Activity程序的Intent
4
protected void onActivityResult(int requestCode, int resultCode, Intent data)
普通
当需要接收Intent回传数据的时候覆写此方法对回传操作进行处理
5
public void finish()
普通
调用此方法会返回之前的Activity程序,并自动调用onActivityResult()方法
6
public final Cursor managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
普通
处理返回的Cursor结果集
XML配置文件盒JAVA文件如下组件垂直摆放
android:layout_width="fill_parent"? 布局管理器宽度为屏幕宽度
android:layout_height="fill_parent">? 布局管理器高度为屏幕高度
? 默认显示文字
? 组件高度为文字高度
public class Send extends Activity {
private Button mybut = null ;// 按钮组件
private TextView msg = null ;// 文本组件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.send_main);// 默认布局管理器
this.mybut = (Button) super.findViewById(R.id.mybut) ; // 取得组件
this.msg = (TextView) super.findViewById(R.id.msg) ; // 取得组件
this.mybut.setOnClickListener(new OnClickListenerImpl()); // 定义单击事件
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Intent it = new Intent(Send.this, Receive.class); // 实例化Intent
it.putExtra("myinfo", "我打算打算打算打算的水电费") ; // 附加信息
Send.this.startActivityForResult(it, 1);// 启动Activity
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {// 判断操作类型
case RESULT_OK:// 成功操作
msg.setText("返回的内容是:" + data.getStringExtra("retmsg"));
break;
case RESULT_CANCELED:// 取消操作
msg.setText("操作取消。");
break ;
default:
break;
}
}
}
? 此布局管理器高度为屏幕高度
? 组件高度为文字高度
? 默认显示文字
public class Receive extends Activity {
private TextView show = null ;// 文本显示组件
private Button retbut = null ;// 按钮组件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.receive_main); // 调用默认布局管理器
this.show = (TextView) super.findViewById(R.id.show) ;// 取得组件
this.retbut = (Button) super.findViewById(R.id.retbut) ;// 取得组件
Intent it = super.getIntent() ;// 取得启动此程序的Intent
String info = it.getStringExtra("myinfo") ; // 取得设置的附加信息
this.show.setText(info) ;// 设置文本显示信息
this.retbut.setOnClickListener(new OnClickListenerImpl()) ; // 设置监听
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Receive.this.getIntent().putExtra("retmsg", "哈哈哈") ;// 返回信息
// 设置返回数据的状态,RESULT_OK与Send.java中的onActivityResult()里判断的对应
Receive.this.setResult(RESULT_OK, Receive.this.getIntent()) ;
Receive.this.finish() ;// 结束Intent
}
}
}