Intent和Bundle传输数据

xiaoxiao2025-11-10  5

 

分别使用Intent和Bundle实现组件间的数据传递。 Intent

FirstActivity

Intent( , )第一个参数代表启动活动的上下文,第二个参数指定想要启动的目标活动。startActivity();用于启动活动,将构建好的Intent传入startActivity()方法就可以启动目标活动。通过intent.putExtra( , )方法传递一个字符串,第一个参数相当于名,第二个参数才是真正要传输的数据。

button.setOnClickListener(new View.OnClickListener() {//生成监听器并绑定监听器     @Override     public void onClick(View view) {                      Intent intent = new Intent(Main2Activity.this,Second.class);                intent.putExtra("com.example.alvin.myapplication2.name", "Tom");

      //数据传递

 startActivity(intent);//启动活动      }});

SecondActivity

通过getintent()方法获取到用于启动SecondActivity的Intent,然后调用

getStringExtra()方法传入相应的名字,就可以得到相应数据了,如果传递的

是整型则用getIntExtra()方法。text.setText(str);用于接收并显示str的

值。

text = (TextView)findViewById(R.id.textView);Intent intent = getIntent();String str = intent.getStringExtra("com.example.alvin.myapplication2.name");

//取出数据text.setText(str);

 

 

Bundle

FirstActivity

Intent( , )第一个参数代表启动活动的上下文,第二个参数指定想要启动的目标活动。startActivity();用于启动活动,将构建好的Intent传入startActivity()方法就可以启动目标活动。通过bundle.putString( , )方法传递一个字符串。通过bundle.putInt( , )方法传递一个整型数。Inten.putExtras(bundle)用于传bundle中所有的数据。

button.setOnClickListener(new View.OnClickListener() {//生成监听器并绑定监听器      @Override      public void onClick(View view) {                Intent intent = new Intent(Main2Activity.this,Second.class);

     Bundle bundle = new Bundle();             bundle.putString("name","John");              bundle.putInt("age", 30);              intent.putExtras(bundle);//数据传递               startActivity(intent);          }});

SecondActivity

通过intent.getExtras()方法获得bundle所有属性。通过getString("name")

getInt("age")就可以得到相应数据了,text.setText(name+age)用于接收并显示

他们的值。

Bundle bundle = intent.getExtras();String name = bundle.getString("name");int age = bundle.getInt("age");text.setText(name +" "+ age);

 

转载请注明原文地址: https://www.6miu.com/read-5039386.html

最新回复(0)