Android: 如何return 到新创建的RecyclerView 列表?

Android: How do I return to newly created RecyclerView list?

我创建了一个具有默认布局的 RecyclerView 列表。然后我将一个新项目添加到列表中,并且布局更新以显示新项目。然后我导航到上一个 activity。当我 return 到 RecyclerView activity 我被 return 编辑到通用的默认列表,我在 RecyclerView 列表中的新项目不见了。

那么我如何 return 到 RecyclerView 和我创建的新项目而不是通用列表?我是否需要添加一些代码,说明如果适配器的大小 > 0,则不要使用现有列表创建新列表?我应该在 RecyclerView activity 还是在适配器中进行测试?如果不是,我的问题是不是因为适配器与 RecyclerView 的 savedInstanceState 不相关 activity?

Activity:

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();
    }
});    

当您从 activity 回击时,您会将其从堆栈中弹出,即 activity 对象将被销毁。对此有更详细的解释 here。从这张图可以看出概念的症结

您可以查看 this to see how you should recreate your activity - and 以了解应如何将其应用到 recyclerview。