所以,我會盡量簡化。我使用這個調用相關的數據來更新我的列表什皮沙克:列表值不會超出方法
parent.queryDatabase(spisak, params);
而且方法如下:
public void queryDatabase(List<School> spisak, String[] args) {
databaseHelper.open();
Cursor c;
c = databaseHelper.getAllSchools();
if(!c.moveToFirst()) {
Toast.makeText(getApplicationContext(), "Ova pretraga nije vratila nijednu školu", Toast.LENGTH_SHORT).show();
}
else {
spisak = cursorToSchool(c);
}
databaseHelper.close();
}
public List<School> cursorToSchool(Cursor c) {
//Converts the Cursor object to temporary School object
List<School> listing = new ArrayList<School>();
School s = new School();
do {
s.setId(c.getInt(0));
s.setName(c.getString(1));
s.setAddress(c.getString(2));
s.setEntryExam(String.valueOf(c.getInt(3)));
s.setNoS(c.getInt(4));
s.setTelephone(c.getString(5));
s.setWebsite(c.getString(6));
listing.add(s);
}
while (c.moveToNext());
return listing;
}
在調用的方法中的重複可變什皮沙克包含的數據是應該有(我在調試過程中檢查過),但超出範圍(回到調用方法的FragmentActivity中),真正的spisak是空的,即在被調用的方法中所做的更改不是持久的。所以當我在FragmentActivity中調用變量時,應如何引用spisak變量,以便它可以保留在該方法中分配給它的值。 例如,在帕斯卡爾:
調用方法名(X爲整數)將不會保留數據
調用方法名(VAR X:整數)將持續數據...
在此先感謝。乾杯!
我認爲你誤解了參數傳遞給方法的方式。在'queryDatabase()'你有一個'spisak'的引用,它是從這個方法的一個對象的引用,然後你改變引用'spisak'。簡單地說,你可以改變(比如在'queryDatabase()'內調用'add()'或'remove()')'spisak',但是你不能改變它的引用。 –