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>
运行效果如下所示:
主界面
子界面
程序解释:
一 主界面 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);