我正在使用android studio並嘗試用數據填充ListView,該數據存儲在設備內部存儲的文件中。我可以創建一個列表,其中包含文件的確切數量,但它們應該都顯示不同的信息。目前,它們都顯示與ArrayList中的第一項相同的數據。使用ArrayList中的數據填充Android ListView將每個項目設置爲與第一個項目相同
下面是代碼:
ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE);
int counter = 0;
int fileNameNumber = 1;
filename = "newAssessment(" + fileNameNumber + ").json";
internalFile = new File(directory, filename);
JSONObject jsonObject;
while (internalFile.exists()) {
files.add(counter, internalFile);
try {
FileInputStream fis = new FileInputStream(internalFile);
DataInputStream in = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
myData = myData + strLine;
}
}catch(IOException e){
e.printStackTrace();
}
try {
jsonObject = new JSONObject(myData);
String assessmentDate = jsonObject.getString("assessmentDate");
String orchard = jsonObject.getString("orchard");
data.add(counter, assessmentDate + " : " + orchard);
}catch(JSONException e){
e.printStackTrace();
}
counter++;
fileNameNumber++;
filename = "newAssessment(" + fileNameNumber + ").json";
internalFile = new File(directory, filename);
}
LVAssessments.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data));
我可以證實,不同的數據被存儲。更改第一個項目是數組更改所有項目。
感謝您的幫助。
你在哪裏初始化了**數據**? – KishuDroid
這是一個類變量'私人列表 data = new ArrayList <>();' –
mgrantnz
在你的方法中聲明 – KishuDroid