NotifyDataSetChanged在不同的片段上

时间:2018-05-17 16:14:26

标签: java android android-fragments fragment

我使用的是Master / Detail流程(不是默认流程),所以我有一个fragment包含RecyclerView的内容,当我点击我看到的项目时在其他fragment项目的详细信息上,它可以正常工作,但现在我想从详细信息片段中删除此项目,当我点击删除时,它会刷新,然后notifydatasetchanged。

问题是什么?我的ListFragment和我的DetailFragment上都有适配器我只能从我的SQLite中删除该项目,我想刷新列表。

活动 - 我在哪里创建listFragment

Fragment1 - ListFragment(RecyclerView,Adapter,Sqlite(适用于获取产品))

Fragment2 - DetailFragment(Sqlite(删除项目))

活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    if(savedInstanceState == null){
        Fragment list = new ListFragment();
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().add(R.id.list,list).commit();
    }
}

在我的ListFragment我有这些属性

private SQLiteAdapter sqliteAdapter;
private Context mContext;
private Adapter adapter;
private RecyclerView recyclerView;
private List<Product> data;

然后我用一个打开sqliteAdapter的方法放入数据,然后获取所有产品,然后关闭连接。

在我的DetailFragment上,我有SQLite对象来获取从适配器(id产品)发送的产品,然后显示有关此产品的信息。 现在我可以删除一个对象,但它没有从ListFragment中刷新,我想知道将这个SQLite对象放在Activity或两个片段中的位置是可以的

1 个答案:

答案 0 :(得分:0)

听起来您只是从数据库中删除该项目。您还需要从适配器列表或其他数据结构中删除它。