제목이 이상하게 들리지만 나는 ArrayList
을 다시 만들어야한다는 것을 알고 있습니다. 따라서 ArrayList Items를 다른 임시 ArrayList
에 저장합니다.새로운 Array를 만들기위한 임시 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);
}
코드는 오류없이 작동하지만 결과는 잘못되었습니다. 여기에 로그 출력이 나와 있습니다.
< 12 ~ 22 : 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/이름 : 보니 타 (. 위업 J 발빈) 12-22 당신은 문제가 무엇인지 볼 수 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/number :: 0 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/uri :: content ://com.android.providers.media.documents/document/audio%3A68 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness 이메일/이름 : Que Va 12-22 08:36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/number :: 1 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/uri :: content : // com. android.providers.media.documents/document/audio % 3A67 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/이름 :: Que Va 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/number :: 2 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/uri :: content : //com.android.providers.media.documents/document/audio%3A67 12- 22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getName :: Que Va 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getNumber :: 0 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getUri :: content : //com.android.providers.media.documents/document/audio%3A67 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getName :: Que Va 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getNumber :: 1 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getUri :: content : //com.android.providers.media.documents/document/audio%3A67 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getName :: Que Va 12-22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getNumber :: 2 12- 22 08 : 36 : 55.281 5023-5023/com.example.enesakbulut.fitness E/getUri : 내용 : //com.android.providers.media.documents/document/audio%3A67
보시다시피 그것은 다른 이름과 숫자를 tempList (Arraylist)에 올바른 방법으로 저장하지만, tempList에서 가져 오려고 할 때 나는 같은 항목을 반복해서 얻습니다. 같은 이름, 같은 번호와 같은 URI. 코드가 너무 간단해서 문제가 있다고 생각하지 않습니다.
나를 도와 줄 수 있기를 바랍니다. :)
data.clear에 중단 점을 넣고 응용 프로그램을 디버깅 할 수 있습니까? 임시 arraylist에 올바른 데이터가 포함되어 있는지 확인하십시오. – Nero
이것은 어렵지만 알아낼 수는 있지만 디버거로 문제를 파악할 수 있어야합니다. – isaace
@Nero는 임시 ArrayList의 크기가 3 대신 1임을 알았습니다. 그러나 왜 그 이유는 모르겠지만 ... 적어도 잘못된 출력의 원인을 알았지 만, 그것을 해결하기 위해... – Ketarr