将arraylist从一个活动发送到另一个活动到listview android [重复]

Posted

技术标签:

【中文标题】将arraylist从一个活动发送到另一个活动到listview android [重复]【英文标题】:send arraylist from one to another activity into listview android [duplicate] 【发布时间】:2015-07-20 09:10:01 【问题描述】:

我正在制作一个安卓应用程序。它很简单并且基于报价。我有一个包含大约 300 个引用的数据库,分为 5 个类别(电影、书籍等),当用户在 TextView 中单击一个类别时,我会随机显示它们。现在我希望用户可以选择保存他们最喜欢的报价,所以我有另一个名为“收藏夹”的活动,我希望收藏夹显示在 ListView 中。

为此,我认为最好的方法是将用户放入的所有收藏夹放在一个字符串 ArrayList 中,然后将整个 ArrayList 发送到收藏夹活动,在那里它将来自 ArrayList 的字符串放入 ListView。但是,每次我尝试将 ArrayList 发送到其他活动时,我的应用程序都会崩溃。 我只设法像这样发送屏幕上显示的当前字符串

text.setOnLongClickListener(new View.OnLongClickListener() 
        @Override
        public boolean onLongClick(View v) 

            intent.putExtra("key", text.getText());

            Context context = getApplicationContext();
            CharSequence text = "Added to favorites";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();

然后我把它放在另一个活动中

protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_favorites);


    final ListView lista = (ListView) findViewById(R.id.listView);
    Intent intent = getIntent();
    tekst = intent.getStringExtra("key");
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);
    lista.setAdapter(adapter);

    listItems.add(tekst);
    adapter.notifyDataSetChanged();

但是,如果我尝试添加另一个收藏夹,它只会覆盖前一个收藏夹。那么我应该如何处理呢?如何发送用户想要放置的所有收藏夹? ArrayList 是最佳选择还是有其他方法?

【问题讨论】:

在共享首选项中将 araylist 保存为 json 字符串,并在下一个活动中将 json 字符串解码为 arraylist 并在 listview 上执行 setadapter 【参考方案1】:

活动 A:

ArrayList<String> list = new ArrayList<String>();

intent.putExtra("yourlist", list);
startActivity(intent);

活动 B:

ArrayList<String> list = getIntent().getSerializableExtra("yourlist");

希望对你有所帮助..!

【讨论】:

【参考方案2】:

您之前的 ArrayList 会被覆盖,因为每次您导航到收藏夹活动时,都会重新创建它,ArrayList 也会重新创建。数据不会持久化。最好的选择是使用数据库并将项目从一项活动保存到数据库中。然后可以从收藏夹活动中的数据库中检索收藏的项目。

【讨论】:

以上是关于将arraylist从一个活动发送到另一个活动到listview android [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法将图像从一个活动发送到另一个活动。请查看详情

Android:如何将界面从一个活动发送到另一个活动

将包含其他自定义对象的对象列表从一个活动发送到另一个活动

将列表从一个活动传递到另一个活动

如何将字符串从一个活动发送到另一个活动

将 listView 数据从一个活动发送到另一个活动