1、Intent启动Activity的启动方式有显式启动和隐式启动,此demo中使用显式启动的方法,启动步骤如下:
(1) 注册两个Activity以及主activity中的Intent-filter;
(2) 在主Activity中创建一个Intent对象;
(3) 调用startActivity(Intent &)启动新Activity;
2、设计一个主Activity和一个子Activity(Sub-Activity),使用主Activity上的按钮启动子Activity,并将子Activity的一些信息返回给主Activity,并显示在主Activity上
主Activity:
package edu.hrbeu.ActivityCommunication;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class ActivityCommunicationActivity extends Activity {
private static final int SUBACTIVITY1 = 1;
TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textShow);
final Button btn1 = (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener(){
public void onClick(View view){
Intent intent = new Intent(ActivityCommunicationActivity.this, SubActivity1.class);
startActivityForResult(intent, SUBACTIVITY1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case SUBACTIVITY1:
if (resultCode == RESULT_OK){
Uri uriData = data.getData();
textView.setText(uriData.toString());
}
break;
}
}
}
子Activity:
package edu.hrbeu.ActivityCommunication;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class SubActivity1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.subactivity1);
final EditText name = (EditText)findViewById(R.id.name);
final EditText psd = (EditText)findViewById(R.id.psd);
Button btnOK = (Button)findViewById(R.id.btnOK);
btnOK.setOnClickListener(new OnClickListener(){
public void onClick(View view){
String uriString = "用户名:"+name.getText().toString()+" 密码:"+psd.getText().toString();
Uri data = Uri.parse(uriString);
Intent result = new Intent(null, data);
setResult(RESULT_OK, result); //设置返回码
finish();
}
});
}
}
Android_manifast:
<?xml version="1.0" encoding="UTF-8"?>
-<manifest android:versionName="1.0" android:versionCode="1" package="edu.hrbeu.ActivityCommunication" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="14"/>
-<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
-<activity android:label="@string/app_name" android:name=".ActivityCommunicationActivity">
-<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:label="@string/app_name" android:name=".SubActivity1"> </activity>
<activity android:label="@string/app_name" android:name=".SubActivity2"> </activity>
</application>
</manifest>