RecyclerView 单元格不保存以备后用
RecyclerView cells not saving for later
这是我的 Activity:
public class MainActivity extends ActionBarActivity {
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
RecyclerView.Adapter mainAdapter;
private List<ToDoItem> toDoItems = new ArrayList<ToDoItem>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(false);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
mainAdapter = new MainAdapter(toDoItems, R.layout.todoitem, this);
recyclerView.setAdapter(mainAdapter);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToDoItem toDoItem = new ToDoItem();
toDoItem.toDoItemName = "+";
toDoItems.add(toDoItem);
mainAdapter.notifyDataSetChanged();
}
});
}
问题是,每当我点击 FAB 时添加一堆单元格,然后完全关闭应用程序并重新打开应用程序,所有单元格都不再存在。如何更改我的代码,以便即使我完全关闭应用程序,我添加的单元格仍然存在?
那是因为你没有在任何地方坚持你的 toDoItems,下次你打开应用程序时,你会重新开始。
你应该保存你的状态,每次打开应用程序时,检查是否有保存的东西,如果有就加载它。
有关详细信息,请参阅有关 存储选项
的 developer.android.com 指南
这是我的 Activity:
public class MainActivity extends ActionBarActivity {
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
RecyclerView.Adapter mainAdapter;
private List<ToDoItem> toDoItems = new ArrayList<ToDoItem>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(false);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
mainAdapter = new MainAdapter(toDoItems, R.layout.todoitem, this);
recyclerView.setAdapter(mainAdapter);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToDoItem toDoItem = new ToDoItem();
toDoItem.toDoItemName = "+";
toDoItems.add(toDoItem);
mainAdapter.notifyDataSetChanged();
}
});
}
问题是,每当我点击 FAB 时添加一堆单元格,然后完全关闭应用程序并重新打开应用程序,所有单元格都不再存在。如何更改我的代码,以便即使我完全关闭应用程序,我添加的单元格仍然存在?
那是因为你没有在任何地方坚持你的 toDoItems,下次你打开应用程序时,你会重新开始。
你应该保存你的状态,每次打开应用程序时,检查是否有保存的东西,如果有就加载它。
有关详细信息,请参阅有关 存储选项