Android开发之Activity间的跳转与传值
程序员文章站
2022-05-14 10:03:16
...
Activity之间的跳转就好比如跳转页面,当点击到某一个控件时添加触发的跳转,也可以通过传值的形式吧此页面想传递的值通过传递到另一个页面显示,在MVC中我们是通过参数拼接的方式进行传递,而在Android中我们通过使用Intent进行Activity的跳转和传值。
- 使用Intent进行Activity的跳转:
Intent在Android开发中被誉为“意图”,从字面意思不难理解,就是“你打算去哪”
Intent是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由 Intent来协助完成Android各个组件之间的通讯
Intent实现原理,相当于一个栈容器,这个栈中存储的内容是一个个的Activity,Activity的Start和Finish操作对应着栈的Push和Pop操作。
那么如何实现此功能呢,首先我们先创建好两个Activity,然后在某一个Activity中,也就是你想通过某些操作,比如按钮点击后跳转,在此Activity中添加以下代码:
Button btnSubmit = findViewById(R.id.btn_click);//通过id获取按钮
btnSubmit.setOnClickListener(new View.OnClickListener() {//点击
@Override
public void onClick(View v) {
//新建一个Intent(当前Activity, SecondActivity)=====显示Intent
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
//启动Intent
startActivity(intent);
}
});
2. 跳转并传递值,如果MainActivity中的值要传给要跳转过去的SecondActivity,那么就可以通过Intent的对象中的putExtra方法来进行传值。在上面的代码startActivity()方法的上方加上下面这段代码就是给目标Activity传值。data是一个String类型的变量,其中存的值是要传给将要跳转的Activity的。对象intent通过调用putExtra来进行传值,第一个参数是值得名字,也就是值的key, 在下个Activity中通过这个key来获取对应的value。
//传值给下一个Activity
String data = "我是上一个Activity中传过来的值";
intent.putExtra("extra_data", data);
然后在跳转后的Activity中添加
//获取上一个Activity传过来的值
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
//将获取的值显示在TextView上
TextView dataTextView = (TextView) findViewById(R.id.data_text_view);
dataTextView.setText(data);
效果: