目录
二 intent传输bundle(把零零散散的数据放在bundle对象里传过去)
一 intent传输基本使用(传递零零散散的数据)
intent传输示意图如下:把数据从activity1传输到activity2
案例:把activity1的数据传递给activity2
package com.example.myintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
}
//跳转
public void jump(View view) {
Intent intent = new Intent(this,MainActivity2.class);
intent.putExtra("name","qing");
intent.putExtra("age",22);
startActivity(intent);
}
}
package com.example.myintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//接收携带过来的数据
Intent intent = getIntent();
String name = intent.getStringExtra("name");
//第2个参数是:如果根据第一个参数拿不到值,就用第2个参数默认值
int age = intent.getIntExtra("age",0);
Toast.makeText(this, "name:"+name+" age:"+age, Toast.LENGTH_SHORT).show();
}
}
效果
二 intent传输bundle(把零零散散的数据放在bundle对象里传过去)
bundle 传输示意图
package com.example.myintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity3 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
}
//点击按钮跳转
public void startJump(View view) {
Intent intent = new Intent(this,MainActivity4.class);
//封装bundle对象,放100个putXXX都可以,因为是打包成1个bundle
Bundle bundle = new Bundle();
bundle.putString("name","画尔");
bundle.putInt("age",12);
//intent携带我们的bundle对象
intent.putExtras(bundle);
startActivity(intent);
}
}
拆数据和没放在bundle里是一样的
package com.example.myintent;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity4 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
Intent intent = getIntent();
//自动拆开bundle对象,拿到里面的数据
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age",0);
Toast.makeText(this, "name:"+name+" age:"+age, Toast.LENGTH_SHORT).show();
}
}
结果
三 总结
一 intent传输基本使用(传递零零散散的数据)
//activity1:传输数据
Intent intent = new Intent(this,MainActivity2.class);
intent.putExtra("name","qing");
intent.putExtra("age",22);
startActivity(intent);
//activity2:接收携带过来的数据
Intent intent = getIntent();
String name = intent.getStringExtra("name");
//第2个参数是:如果根据第一个参数拿不到值,就用第2个参数默认值
int age = intent.getIntExtra("age",0);
Toast.makeText(this, "name:"+name+" age:"+age, Toast.LENGTH_SHORT).show();
二 intent传输bundle(把零零散散的数据放在bundle对象里传过去)
Intent intent = new Intent(this,MainActivity4.class);
//封装bundle对象,放100个putXXX都可以,因为是打包成1个bundle
Bundle bundle = new Bundle();
bundle.putString("name","画尔");
bundle.putInt("age",12);
//intent携带我们的bundle对象
intent.putExtras(bundle);
startActivity(intent);
接收数据同 一intent传输基本使用