用Intent在Activity之间传递数据

在第一个Activity中:

Intent intent = new Intent();//采用隐式Intent传递数据
intent.setAction("android.intent.action.secondintent");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("http://www.hao123.com"));
Person person = new Person();//一个实体类
person.setPname(username.getText().toString());
person.setAge(20);
intent.putExtra("person", person);
PackageManager pm = getPackageManager();
ComponentName cn = intent.resolveActivity(pm);
if(cn==null){
Toast.makeText(this, "无法处理", Toast.LENGTH_LONG).show();
}else{
startActivity(intent);
}

在第二个Activity中:

TextView uname = (TextView) findViewById(R.id.uuname);
Intent intent = getIntent();
Person p = (Person) intent.getSerializableExtra("person");
uname.setText("姓名:"+p.getPname()+",年龄:"+p.getAge());

在Android开发中,Intent是用来在Activity之间传递数据的重要机制。它是一个用于启动另一个应用组件(如Activity、Service或BroadcastReceiver)的消息载体。以下是一个简单的步骤来创建并传递数据: 1. **创建发送者Activity**(假设名为SenderActivity): - 首先,在SenderActivity中,你需要创建一个Intent实例,并附带数据。例如,你可以通过`putExtra()`方法添加键值对,如String或Parcelable对象。 ```java Intent intent = new Intent(SenderActivity.this, ReceiverActivity.class); intent.putExtra("key", "value"); // 数据可以是字符串或其他类型 ``` 2. **启动接收者Activity**(假设名为ReceiverActivity): - 使用`startActivity()`方法启动接收者,并传递Intent。 ```java startActivity(intent); ``` 3. **接收者Activity**(ReceiverActivity): - 在onCreate()或合适的生命周期方法里,通过`getIntent().getStringExtra()`等方法从Intent中获取数据。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_receiver); String receivedData = getIntent().getStringExtra("key"); Log.d("Received Data", receivedData); // 输出接收到的数据 } ``` 4. **运行截图**: - 完成上述操作后,分别在SenderActivity和ReceiverActivity中运行并记录它们的样子,然后截取屏幕截图保存作为证据。 5. **Intent代码展示**: - 以下是完整的一段SenderActivity代码片段: ```java Button sendButton = findViewById(R.id.send_button); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SenderActivity.this, ReceiverActivity.class); intent.putExtra("data_to_send", "这是你要传递的数据"); startActivity(intent); } }); ``` 记得在实际项目中替换掉示例中的布局ID、组件名称等,确保所有的引用都是正确的。完成以上步骤后,你应该能够成功地在两个Activity传递数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值