3 回答
TA贡献2065条经验 获得超13个赞
您可以将列表设为静态,然后就不需要传递它了。您可以在您的应用程序中的任何地方使用它。
通过使其静态可能会出现memory leaks
问题,因此dispose
它们在使用后正确。
TA贡献1995条经验 获得超2个赞
在 ActivityPlayers.java addItem() 方法中,将您的数据保存在共享首选项中。
private void addItem(int position) {
/** Get user input (name) **/
textAdd = findViewById(R.id.name_input);
/** Add name to the list **/
mNameList.add(position, new NameItem(textAdd.getText().toString().trim()));
/** sort that list **/
sortArrayList();
/** save changes to shared preferences **/
saveData();
/** Show changed list to user **/
mAdapter.notifyItemInserted(position);
/** Clear the input field **/
textAdd.getText().clear();
/** save data to shared pref **/
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
try {
editor.putString(<KEY_NAME>, ObjectSerializer.serialize(mNameList));
} catch (IOException e) {
e.printStackTrace();
}
editor.commit();
}
并在 ActivityNewGame.java 中像这样从共享首选项中提取 ArrayList。
mNewNameList = new ArrayList<NewGamePlayerItem>();
// load NewGamePlayerItems from preference
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
try {
mNewNameList = (ArrayList<NewGamePlayerItem>) ObjectSerializer.deserialize(prefs.getString(<KEY_NAME>, ObjectSerializer.serialize(new ArrayList<NewGamePlayerItem>())));
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
TA贡献1829条经验 获得超13个赞
您可以将数组列表保存在一个文件中。
public void save(String fileName) throws FileNotFoundException {
String tmp = clubs.toString();
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
pw.write(tmp);
pw.close();
}
添加回答
举报