7.Activity传递Bundle数据
1.下载素材。
本节素材源码,请在公众号回复" AS12061 "。
2.修改MainActivity。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化按钮
Button button = findViewById(R.id.button);
//设置按钮的点击监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//打开SecondActivity
//通过Bundle设置值,进行传递
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
//声明一个Bundle对象
Bundle bundle = new Bundle();
bundle.putString("name", "DM盒子");
bundle.putDouble("version", 2.3);
//intent传递bundle数据
intent.putExtra("bundle", bundle);
startActivity(intent);
}
});
}
}
3.修改SecondActivity。
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
//通过getIntent()获取上个Activity传过来的intent
//通过getBundleExtra(name名称) 获取Bundle对象
Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra("bundle");
//通过Bundle对象获取值
String name = bundle.getString("name");
Double version = bundle.getDouble("version",0.0);
//格式化数据
String text = String.format("软件名称:%s,软件版本:%.1f", name, version);
//实例化TextView
TextView textView = findViewById(R.id.textView);
//设置TextView的显示文本
textView.setText(text);
}
}