美文网首页Android
【Android开发】intent.putExtra()方法参数

【Android开发】intent.putExtra()方法参数

作者: SevenST | 来源:发表于2020-07-08 21:42 被阅读0次

一. putExtra()方法的作用

  1. 先来说下intent的作用,intent是Android程序中各组件之间进行交互的一种重要方式,一般被用来启动活动、启动服务以及发送广播等;intent在启动Activity的时候可以传递数据,比如说给另一个Activity传递数据,那么活动与活动之间是怎样进行数据传递的呢?
  2. 这时候就需要用到putExtra()方法。intent中提供一系列的putExtra()方法的重载,可以把想要传递的数据暂存在intent中,当另一个活动启动后,再把这些数据从intent缓存中取出即可。
  3. putExtra("A", B)方法中,AB为键值对,第一个参数为键名,第二个参数为键对应的值,这个值才是真正要传递的数据。举个栗子:
String data = "Hello World";
...
intent.putExtra("extra_data", data);

既然数据是传递给另一个Activity的,那另一个Activity怎么获取这个数据(键值对)呢?这个时候就需要用到get×××Extra()方法,那“×××”又是啥意思呢?其实它是数值类型。比如上例中的键值对("extra_data", data),data的类型是String,那么获取这组数据的方法就是getStringExtra()。同理,还有getIntExtra()getBooleanExtra()等方法。

二. 实战练习

  光说不练假把式,我们学习新知识点的时候都应该多敲代码多练习,以加深记忆!下面我就写一个栗子: (注:环境为Android Studio 4.0
  这个栗子的思路就是在第一个活动(MainActivity)里新建2个文本输入框EditText,然后再新建一个Button,添加点击事件,当点击Button时,MainActivity中的2个TextView中输入的内容同时在第二个活动SecondActivity中的TextView中显示出来。

1. 新建第一个Activity:MainActivity

  以下是MainActivity的源码:

public class MainActivity extends AppCompatActivity {

    //声明控件对象
    private EditText editText1;
    private EditText editText2;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取控件的对象
        editText1 = findViewById(R.id.edit_1);
        editText2 = findViewById(R.id.edit_2);
        button = findViewById(R.id.button);

        //为Button绑定监听器
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取文本输入框中的内容
                String editTextStr1 = editText1.getText().toString();
                String editTextStr2 = editText2.getText().toString();
                //创建intent对象,参数分别为上下文、要跳转的Activity类
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                //将要传递的值附加到Intent对象中暂时保存
                intent.putExtra("extra_data1", editTextStr1);
                intent.putExtra("extra_data2", editTextStr2);
                //启动该intent对象,实现Activity跳转
                startActivity(intent);
            }
        });
    }
}

  MainActivity对应的布局文件为activity_main.xml,使用简单的LinearLayout线性布局,控件排布为从上到下依次为文本输入框、文本输入框、按钮。其源码为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edit_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/edit_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        android:textAllCaps="false" />

</LinearLayout>

2. 新建第二个Activity:SecondActivity

public class SecondActivity extends AppCompatActivity {

    //声明TextView对象
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        //获取TextView控件对象
        textView = findViewById(R.id.text_view);

        //获取启动该Activity的Intent对象
        Intent intent = getIntent();

        //获取Intent中暂存的数据
        String data1 = intent.getStringExtra("extra_data1");
        String data2 = intent.getStringExtra("extra_data2");

        //将MainActivity中两个输入框的输入的内容一同在SecondActivity的TextView控件中显示出来
        textView.setText(data1 + " " + data2);
    }
}

  SecondActivity的布局文件activity_second.xml比较简单,就是一个简单的文本显示控件TextView,就不贴代码了。

三. 运行结果

  • 点击AndroidStudio的run按钮运行程序,程序首先进入MainActivity,在Android模拟器中运行的结果如下图所示:
  • 在两个文本输入框中依次输入“Hello world!”、“Awesome Awesome!”,点击当前UI中的Button按钮,程序跳转到SecondActivity,运行的结果如下图所示:
  • 这样,我们就通过intent.putExtra()方法将一个活动的数据传递到了第二个活动中,并显示出来。
    写在最后:请大神勿喷,这是本人的自学笔记,旨在巩固自学过程中的学习效果,如果能给Android小白带来一点点帮助,就再好不过了

相关文章

网友评论

    本文标题:【Android开发】intent.putExtra()方法参数

    本文链接:https://www.haomeiwen.com/subject/ukkccktx.html