所以,我会尽量让这个简单。我使用这个调用来用相关数据更新我的列表spisak :
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;
}
在被调用的方法中,重复的变量spisak包含它应该具有的数据(我在调试期间检查过),但在该范围之外(回到调用该方法的 FragmentActivity 中)真正的spisak是空的,即在被调用方法中所做的更改是不执着。那么当我在 FragmentActivity 中调用spisak变量时,我应该如何引用它,以便它可以保留在该方法中分配给它的值。例如,在帕斯卡:
调用 methodname(x:integer) 不会持久化数据
调用 methodname(var x:integer) 将持久化数据...
提前致谢。干杯!