我创建了一个具有默认布局的 RecyclerView 列表。然后我将一个新项目添加到列表中,并且布局更新以显示新项目。然后我导航到以前的活动。当我返回 RecyclerView 活动时,我将返回到通用默认列表,并且我在 RecyclerView 列表中的新项目消失了。
那么如何返回到 RecyclerView 和我创建的新项目而不是通用列表?我是否需要添加一些代码,说明如果适配器的大小 > 0 则不要使用现有列表创建新列表?我应该在 RecyclerView 活动还是在适配器中进行测试?如果不是,我的问题是否会因为适配器与 RecyclerView 活动的 savedInstanceState 不相关而出现?
活动:
public class ListContactsActivity extends AppCompatActivity {
private ListContactsAdapter mContactsAdapter;
private RecyclerView mRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recyclerviewlist);
final List<Contact> mContacts;
mContacts = new ArrayList<>();
mRecyclerView = (RecyclerView) findViewById(R.id.cardList);
mRecyclerView.setLayoutManager(getLayoutManager());
mRecyclerView.setHasFixedSize(true);
mContactsAdapter = new ListContactsAdapter(this, mContacts);
mRecyclerView.setAdapter(mContactsAdapter);
...
}
private RecyclerView.LayoutManager getLayoutManager() {
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
return llm;
}
适配器:
class ListContactsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
...
@Override
public int getItemCount() {
return mItems.size();
}
Activity 中的工具栏代码:
...
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationIcon(R.drawable.ic_action_previous_item);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});