1 主界面 和 被调用界面

activity_main.xml(主界面)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText2"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignTop="@+id/editText2"
        android:layout_toLeftOf="@+id/editText2"
        android:text="姓名"
        android:textSize="@dimen/activity_vertical_margin" />    
    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button0"
        android:layout_below="@+id/button2"
        android:layout_marginTop="45dp"
        android:ems="10" >
        <requestFocus />
    </EditText>
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="20dp"
        android:text="确定" />
</RelativeLayout>

test124.xml (子窗体)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >
        <requestFocus />
    </EditText>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

  

2 后台代码

MainActivity.java(主界面后台代码)

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.EditText;
public class MainActivity extends Activity {
//参数传递
	private EditText etName;
	Button btn;
	OnClickListener listener3 = null;
    @Override
	protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
	//传递参数
	listener3 = new OnClickListener() 
	{
public void onClick(View v)
	{
   //读取editText2的值
   etName = (EditText) findViewById(R.id.editText2);
String info = etName.getText().toString();
Bundle bundle = new Bundle();
bundle.putString("name", info);
Intent intent3=new Intent(MainActivity.this,BundleDemo1.class);
intent3.putExtras(bundle);
	//finish();
	startActivity(intent3);
	}
	};
    //和界面建立起来关联		
	setContentView(R.layout.activity_main);
	btn = (Button) findViewById(R.id.button3);
	//控件所触发的事件
	btn.setOnClickListener(listener3);
}
}

  

子窗体代码(BundleDemo1.java)

注意:断点运行F6,执行到最后F8

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class BundleDemo1 extends Activity {
	private TextView etName;	
	OnClickListener listener0 = null;
	Button button0;	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		setContentView(R.layout.test124);		
		 etName=(TextView)findViewById(R.id.editText1);
		  Bundle b=getIntent().getExtras();
		  //获取Bundle的信息
		  String info=b.getString("name");
		  etName.setText("您的姓名:"+info);		  
		  listener0 = new OnClickListener()
		  {
		  public void onClick(View v) {				
		  finish();
		  }
		  };		  
		  button0 = (Button) findViewById(R.id.button1);
		  button0.setOnClickListener(listener0);
	}
}

  

3 页面注册(AndroidManifest.xml)

<activity
            android:name="com.example.study1.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=".BundleDemo1" android:label="BundleDemo1"></activity>

  

运行效果如下所示:

Android界面传递参数_bundle

主界面

Android界面传递参数_xml_02

子界面

程序解释:

一 主界面 MainActivity.java

代码关键点描述:

(1)  获取R.id.editText2 输入的值给etName

获取

private EditText etName;

etName = (EditText) findViewById(R.id.editText2);

String info = etName.getText().toString();

(2) Intent实现页面跳转

//从当前页面MainActivity跳转到BundleDemo1

Intent intent3=new Intent(MainActivity.this,BundleDemo1.class);

//页面参数传递

intent3.putExtras(bundle);

startActivity(intent3);

(3) Bundle是将数据传递到另一个上下文中或保存或回复你自己状态的数据存储方式。它的数据不是持久化状态。

Bundle bundle = new Bundle();

bundle.putString("name", info);

(4)和界面建立起来关联。关联的文件名称是activity_main.xml

setContentView(R.layout.activity_main);

(5)按钮事件的绑定

①在onCreate外 定义如下代码:

Button btn;

OnClickListener listener3 = null;

②在 protected void onCreate(Bundle savedInstanceState)方法内编写

listener3 = new OnClickListener()

{

   public void onClick(View v)

   {

      //Title设置

      setTitle("这是在传值测试");

      ...     

   }

}

btn = (Button) findViewById(R.id.button3);

//控件所触发的事件

btn.setOnClickListener(listener3);

二 子界面 BundleDemo1.java

(1) 获取主界面传递的参数值

TextView etName;

etName=(TextView)findViewById(R.id.editText1);

Bundle b=getIntent().getExtras();

//获取Bundle的信息

String info=b.getString("name");

etName.setText("您的姓名:"+info);

(2)关闭当前页面,返回到主界面

OnClickListener listener0 = null;

Button button0;

...

listener0 = new OnClickListener()

{

       public void onClick(View v) {

        finish();

    }

};

button0 = (Button) findViewById(R.id.button1);

button0.setOnClickListener(listener0);