Intent:不同组件之间的媒介。之前学的都是单个Activity上的组件,那多个Activity之间是怎么交互的呢?这时就用到了Intent。Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcast。今天做了一个简单的Demo用户注册,来说明两个Activity之间如何调用。
最终结果图片:
当然,两个Activity都要在AndroidManifest.xml里配置:
<activity
android:name=".RegisterTestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
android:name=".RegisterTestActivity"
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="ResultActivity"></activity>
</intent-filter>
</activity>
<activity
android:name="ResultActivity"></activity>
第一个页面布局main.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:collapseColumns="3"
android:stretchColumns="1" >
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:collapseColumns="3"
android:stretchColumns="1" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名称" >
</TextView>
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名称" >
</TextView>
<EditText
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" >
</EditText>
</TableRow>
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" >
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户密码" >
</TextView>
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户密码" >
</TextView>
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:password="true"
android:text="" >
</EditText>
</TableRow>
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:password="true"
android:text="" >
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别" >
</TextView>
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别" >
</TextView>
<RadioGroup
android:id="@+id/gender_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/gender_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
</RadioGroup>
</TableRow>
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
</RadioGroup>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="婚否" >
</TextView>
android:id="@+id/TextView04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="婚否" >
</TextView>
<ToggleButton
android:id="@+id/marriged"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/ToggleButton01" >
</ToggleButton>
</TableRow>
android:id="@+id/marriged"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/ToggleButton01" >
</ToggleButton>
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="爱好" >
</TextView>
android:id="@+id/hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="爱好" >
</TextView>
<CheckBox
android:id="@+id/reading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="阅读" />
android:id="@+id/reading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="阅读" />
<CheckBox
android:id="@+id/swimming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="游泳" />
</TableRow>
android:id="@+id/swimming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="游泳" />
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TextView05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="职务" >
</TextView>
android:id="@+id/TextView05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="职务" >
</TextView>
<Spinner
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消" >
</Button>
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消" >
</Button>
<Button
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册" >
</Button>
</TableRow>
</TableLayout>
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册" >
</Button>
</TableRow>
</TableLayout>
</LinearLayout>
相关代码:package com.register.gl;
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;
import android.widget.ArrayAdapter;
import android.widget.RadioButton;
import android.widget.ToggleButton;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.CheckBox;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ArrayAdapter;
import android.widget.RadioButton;
import android.widget.ToggleButton;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.CheckBox;
public class RegisterTestActivity extends Activity {
/** Called when the activity is first created. */
private Button register,cancel;
private ToggleButton marriged;
private RadioButton male,female;
private EditText username,password;
private Spinner position;
private CheckBox reading,swimming;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username=(EditText)findViewById(R.id.username);
password=(EditText)findViewById(R.id.password);
male=(RadioButton)findViewById(R.id.male);
female=(RadioButton)findViewById(R.id.female);
reading=(CheckBox)findViewById(R.id.reading);
swimming=(CheckBox)findViewById(R.id.swimming);
marriged=(ToggleButton)findViewById(R.id.marriged);
position=(Spinner)findViewById(R.id.position);
String[] str={"ceo","cfo","pm"};
ArrayAdapter aa=new ArrayAdapter(this,android.R.layout.simple_spinner_item,str);
position.setAdapter(aa);
register=(Button)findViewById(R.id.register);
cancel=(Button)findViewById(R.id.cancel);
register.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Bundle b=new Bundle();
b.putString("username", "用户名称:"+username.getText().toString());
b.putString("password", "用户密码:"+password.getText().toString());
if(male.isChecked()){
b.putString("gender", "性别:男");
}else{
b.putString("gender", "性别:女");
}
String temp="爱好:";
if(reading.isChecked()){
temp+="阅读";
}
if(swimming.isChecked()){
temp+=" "+"游泳";
}
b.putString("hobby", temp);
if(marriged.isChecked()){
b.putString("marriged", "婚否:已婚");
}else{
b.putString("marriged", "婚否:未婚");
}
b.putString("position", "职位:"+position.getSelectedItem().toString());
Intent intent=new Intent(RegisterTestActivity.this,ResultActivity.class);
intent.putExtra("data", b);
startActivity(intent);
}
});
}
}
/** Called when the activity is first created. */
private Button register,cancel;
private ToggleButton marriged;
private RadioButton male,female;
private EditText username,password;
private Spinner position;
private CheckBox reading,swimming;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
username=(EditText)findViewById(R.id.username);
password=(EditText)findViewById(R.id.password);
male=(RadioButton)findViewById(R.id.male);
female=(RadioButton)findViewById(R.id.female);
reading=(CheckBox)findViewById(R.id.reading);
swimming=(CheckBox)findViewById(R.id.swimming);
marriged=(ToggleButton)findViewById(R.id.marriged);
position=(Spinner)findViewById(R.id.position);
String[] str={"ceo","cfo","pm"};
ArrayAdapter aa=new ArrayAdapter(this,android.R.layout.simple_spinner_item,str);
position.setAdapter(aa);
register=(Button)findViewById(R.id.register);
cancel=(Button)findViewById(R.id.cancel);
register.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Bundle b=new Bundle();
b.putString("username", "用户名称:"+username.getText().toString());
b.putString("password", "用户密码:"+password.getText().toString());
if(male.isChecked()){
b.putString("gender", "性别:男");
}else{
b.putString("gender", "性别:女");
}
String temp="爱好:";
if(reading.isChecked()){
temp+="阅读";
}
if(swimming.isChecked()){
temp+=" "+"游泳";
}
b.putString("hobby", temp);
if(marriged.isChecked()){
b.putString("marriged", "婚否:已婚");
}else{
b.putString("marriged", "婚否:未婚");
}
b.putString("position", "职位:"+position.getSelectedItem().toString());
Intent intent=new Intent(RegisterTestActivity.this,ResultActivity.class);
intent.putExtra("data", b);
startActivity(intent);
}
});
}
}
第二个页面result.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
相关代码:
package com.register.gl;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.*;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.widget.*;
import java.util.ArrayList;
import java.util.List;
public class ResultActivity extends Activity {
private ListView listView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
listView=(ListView)findViewById(R.id.ListView01);
Intent intent=this.getIntent();
Bundle b=intent.getBundleExtra("data");
List list=new ArrayList();
list.add(b.getString("username"));
list.add(b.getString("password"));
list.add(b.getString("position"));
list.add(b.getString("gender"));
list.add(b.getString("hobby"));
list.add(b.getString("marriged"));
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_checked,list);
listView.setAdapter(adapter);
}
private ListView listView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
listView=(ListView)findViewById(R.id.ListView01);
Intent intent=this.getIntent();
Bundle b=intent.getBundleExtra("data");
List list=new ArrayList();
list.add(b.getString("username"));
list.add(b.getString("password"));
list.add(b.getString("position"));
list.add(b.getString("gender"));
list.add(b.getString("hobby"));
list.add(b.getString("marriged"));
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_checked,list);
listView.setAdapter(adapter);
}
}