临时ArrayList创建一个新的

问题描述 投票:-1回答:1

我知道标题听起来很奇怪,但我必须重建一个ArrayList。因此,我将ArrayList项目保存到另一个临时ArrayList

然后我清除需要重建的ArrayList,然后开始重建过程。我的代码如下所示:

ArrayList<ListData> tempList = new ArrayList<>();
                        for(int i = 0; i<data.size();i++){
                                String name = data.get(i).getName();
                                Log.e("name: ", name);
                                String number = String.valueOf(i);
                                Log.e("number: ", number);
                                String uri = data.get(i).getUri();
                                Log.e("uri: ", uri);
                                listData.setName(name);
                                listData.setNumber(number);
                                listData.setUri(uri);
                                tempList.add(listData);
                            }
                        data.clear();
                        for(int i=0; i<tempList.size(); i++){
                                String name = tempList.get(i).getName();
                                Log.e("getName: ", name);
                                String number = String.valueOf(i);
                                Log.e("getNumber: ", number);
                                String uri = tempList.get(i).getUri();
                                Log.e("getUri: ", uri);
                                listData.setName(name);
                                listData.setNumber(number);
                                listData.setUri(uri);
                                data.add(listData);
                        }

代码工作没有任何错误,但结果是错误的,这里是日志输出。你应该看看问题是什么:

<8月12日至22日:36:5023-5023 55 281 / E com.example.enesakbulut.fitness /名称::博尼塔(J·巴尔文英尺)8月12日至22日:36:55 281 5023-5023 / com.example.enesakbulut。健身/数:: 0 8月12日至22日:36:55 281 5023-5023 / com.example.enesakbulut.fitness E / URI ::内容://com.android.providers.media.documents/document/audio%3A68 12-22 08:36:5023-5023 55 281 /ëcom.example.enesakbulut.fitness /名称去12-22 :: 08:36:5023-5023 55 281 /ëcom.example.enesakbulut.fitness /数:: 1月12日至22日08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I / URI ::含量:12-22 8点36 //com.android.providers.media.documents/document/audio%3A67 :5023-5023 55 281 /ëcom.example.enesakbulut.fitness /名称去12-22 :: 08:36:5023-5023 55 281 /ëcom.example.enesakbulut.fitness / 2号12-22 :: 08: 36:5023-5023 55 281 / E com.example.enesakbulut.fitness / URI ::含量:12-22 //com.android.providers.media.documents/document/audio%3A67 08:36:55 281 5023-5023 / com.example.enesakbulut.fitness E /的getName ::什么弗吉尼亚州8月12日至22日:36:55 281 5023-5023 / com.examp le.enesakbulut.fitness I / 0 getNumber 12-22 :: 08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I / getUri ::含量://com.android.providers.media.documents/document /音频3A67 12-22%08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I /的getName去12-22 :: 08:36:5023-5023 55 281 /ëcom.example.enesakbulut.fitness / getNumber 8月12日至22日:: 1:36:55 281 5023-5023 / com.example.enesakbulut.fitness I / getUri ::含量:12- //com.android.providers.media.documents/document/audio%3A67 22 08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I /的getName去12-22 :: 08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I / getNumber 12 :: 2 -22 08:36:55 281 5023-5023 / com.example.enesakbulut.fitness I / getUri ::含量://com.android.providers.media.documents/document/audio%3A67

如您所见,它以正确的方式将不同的名称和数字保存到tempList(Arraylist),但是当我尝试从tempList中获取它们时,我只是一遍又一遍地获得相同的项目。相同的名称,相同的数字和相同的uri。代码很简单,我简直不敢相信这会导致问题。

我希望你能帮助我! :)

java android listview arraylist adapter
1个回答
0
投票

你不是要创建ListData的新实例来添加到新数组,如果ListData是你的pojo类,这个代码应该工作;

ArrayList<ListData> tempList = new ArrayList<>();
                        for(int i = 0; i<data.size();i++){
                                String name = data.get(i).getName();
                                Log.e("name: ", name);
                                String number = String.valueOf(i);
                                Log.e("number: ", number);
                                String uri = data.get(i).getUri();
                                Log.e("uri: ", uri);
                                ListData listData = new ListData();
                                listData.setName(name);
                                listData.setNumber(number);
                                listData.setUri(uri);
                                tempList.add(listData);
                            }
                        data.clear();
                        for(int i=0; i<tempList.size(); i++){
                                String name = tempList.get(i).getName();
                                Log.e("getName: ", name);
                                String number = String.valueOf(i);
                                Log.e("getNumber: ", number);
                                String uri = tempList.get(i).getUri();
                                Log.e("getUri: ", uri);
                                ListData listData = new ListData();
                                listData.setName(name);
                                listData.setNumber(number);
                                listData.setUri(uri);
                                data.add(listData);
                        }
© www.soinside.com 2019 - 2024. All rights reserved.