问题的介绍:在一个Activity中启动另一个Activity时,将当前的Activity的数据传送到即将被启动的另一个Activity,并将其显示在界面。
解决方案:利用到Bundle的数据的封装的能力,传递需要传送的数据
第一个页面添加一个按钮和输入文本控件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = findViewById(R.id.button1);
EditText editText = findViewById(R.id.textview1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,second_fragment.class);
//将数据绑定在bundle中
Bundle bundle = new Bundle();
bundle.putString("editText",editText.getText().toString());
// 将bundle添加到意图
intent.putExtras(bundle);
startActivity(intent);
}
});
}
第二个页面添加一个显示文本控件textview
second_activity.java
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_fragment);
Button button2 = findViewById(R.id.button2);
TextView textView = findViewById(R.id.textView2);
Bundle bundle = this.getIntent().getExtras();
//通过上个Activity传过来的数据,通过key:editText获取(上个活动设置的key,就是传送数据的标识)
String text = bundle.getString("editText");
textView.setText(text);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//结束当前活动直接返回上层
finish();
}
});
}



