Bundle是个保存元组<key,value>的数据结构,两个活动传递数据时就通过Bundle进行传递
在Main中输入数据,然后将数据传递给Address
两个活动布局
Main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入姓名"
/>
<EditText
android:id="@+id/classname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入班级名"
/>
<EditText
android:id="@+id/number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入学号"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
/>
</LinearLayout>
Address
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AddressActivity"
android:orientation="vertical"
>
<TextView
android:id="@+id/_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/_classname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"
/>
</LinearLayout>
Main的java调用
package com.example.myactivityii;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//获取EditText中的内容
String site1 = ((EditText)findViewById(R.id.name)).getText().toString();
String site2 = ((EditText)findViewById(R.id.classname)).getText().toString();
String site3 = ((EditText)findViewById(R.id.number)).getText().toString();
if("".equals(site1) || "".equals(site2) || "".equals(site3)){//只要有一个信息为空
Toast.makeText(
MainActivity.this,"请将信息填写完整",Toast.LENGTH_SHORT
);
}
else {
//1.创建Intent对象
Intent intent = new Intent(
MainActivity.this, AddressActivity.class
);
//2.创建Bundle对象
Bundle bundle = new Bundle();
//3.在Bundle里保存信息
bundle.putCharSequence("name,",site1);//保存的是字符序列
bundle.putCharSequence("classname",site2);
bundle.putCharSequence("number",site3);
//4.将Bundle保存到Intent中去
intent.putExtras(bundle);
//5.启动intent,将信息传递到AddressActivity
startActivity(intent);
}
}
});
}
}
Address的java调用
package com.example.myactivityii;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
/*
* 获取Main中传递的Intent并处理其中的信息
* */
public class AddressActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_address);
//1.获取Intent和Bundle
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
//2.获取信息
String name = bundle.getString("name");
String classname = bundle.getString("classname");
String number = bundle.getString("number");
//3.更新到当前活动中
TextView textView1 = (TextView)findViewById(R.id._name);
TextView textView2 = (TextView)findViewById(R.id._classname);
TextView textView3 = (TextView)findViewById(R.id._number);
textView1.setText(name);
textView2.setText(classname);
textView3.setText(number);
}
}
来源:https://www.cnblogs.com/zsben991126/p/12234810.html