java - 通过引用将 ArrayList 对象传递给另一个 Activity

标签 java android android-intent arraylist

我有一个 Activity 将对象数组列表发送到另一个 Activity 。

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener {

    private ArrayList<Value> values;

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

        ...

        values = new ArrayList<>();
    }


    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent i;
        switch(position){
            case 0:
                i = new Intent(MainActivity.this, Main2Activity.class);
                i.putExtra("Values", values);
                startActivity(i);
                break;
            case 1:
                i = new Intent(MainActivity.this, Main3Activity.class);
                i.putExtra("Values",values);
                startActivity(i);
                break;
        }
    }
}

当我在任何其他 Activity 中添加或删除值时,ArrayList 在我的 MainActivity 中不会更改。例如:

public class Main2Activity extends AppCompatActivity{

    private ArrayList<Value> values;

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

        ...

        values = (ArrayList<Value>) getIntent().getSerializableExtra("Values");

        ...

        values.add(value1, value2);
        this.finish();
    }

    ...
}

我想知道如何通过引用发送我的 ArrayList,以便我可以添加、删除或修改它而不丢失更改。

最佳答案

您在Intent中传递的额外数据是序列化的,因此不能通过引用传递。

一个简单的解决方案是在某处使用static字段在Activity之间共享数据

关于java - 通过引用将 ArrayList 对象传递给另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888633/

相关文章:

android - 如何在使用 emailIntent 发送电子邮件后自动隐藏键盘

android - 如何将 URL 发送到 OneNote Android App?

android - 在 Android 日历上设置日期内容值

java - 寻找Java的声音库

java - 在什么情况下 CLOCK_MONOTONIC 可能不可用

android - 相对布局 - 自动换行

android - android中的动画(让一个人跑)

java - 了解 tomcat docker 文件

java - 在以下示例中声明同步方法的目的是什么

java - 动态创建 JSON 对象