📅  最后修改于: 2023-12-03 14:51:14.231000             🧑  作者: Mango
在 Android 应用开发中,经常需要将数据传递给其他 Activity 或 Service 等组件,Intent 是实现这一功能的关键类。本文将介绍如何在 Android Java 中将列表传递给 Intent。
传递列表需要以下步骤:
首先,需要准备待传递的列表,可以使用 Java 数组或 List 来存储。
List<String> list = new ArrayList<>();
list.add("item1");
list.add("item2");
list.add("item3");
Intent 对象是实现组件间数据传递的关键类,需要用于传递数据的 Activity 或 Service 的 Context 对象作为参数来创建 Intent 对象。
Intent intent = new Intent(this, TargetActivity.class);
Intent 类提供了一系列用于传递数据的 putExtra() 方法,其中,putExtra(String name, Serializable value) 方法可以用于传递序列化对象,因此可以传递 List 对象,只需要将 List 对象转换为 Serializable 对象即可。
intent.putExtra("list", (Serializable)list);
在目标 Activity 中,需要使用 Intent 类的 getSerializableExtra(String name) 方法获取传递的 Serializable 对象,然后将其转换为 List 对象。
Intent intent = getIntent();
List<String> list = (List<String>)intent.getSerializableExtra("list");
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 准备数据
List<String> list = new ArrayList<>();
list.add("item1");
list.add("item2");
list.add("item3");
// 创建 Intent 对象
Intent intent = new Intent(this, TargetActivity.class);
// 使用 putExtra() 方法传递列表
intent.putExtra("list", (Serializable)list);
// 启动 TargetActivity
startActivity(intent);
}
}
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.List;
public class TargetActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_target);
// 在目标 Activity 中获取传递的列表
Intent intent = getIntent();
List<String> list = (List<String>)intent.getSerializableExtra("list");
}
}
通过本文的介绍,我们了解到了如何在 Android Java 中将列表传递给 Intent,其中涉及到了 Java 数组和 List 的使用,以及 Intent 类的 putExtra() 和 getSerializableExtra() 方法使用。