在一个fragment中给SQlite数据库insert数据,如何在另一个fragment中query到ListView并且即时刷新

执行insert和query方法就不多说了,主要是另一个fragment的即时更新

首先,我们需要知道一点:主fragment可以控制(不知道用控制妥不妥)子fragment的内容。

那么,我们需要给一个fragment中的ListView刷新数据,需要先给adapter加一个更新方法:

public void addOne(T t) {
    if (t != null) {
        mData.add(t);
        notifyDataSetChanged();
    }
}
然后需要在new  Adapter的地方,也就是我们需要被刷新的fragment中,给adpter对象调用这个更新方法。但是我们不能直接调用,因为传入的数据是从别的fragment中存入到数据库中的。而我们现在所做的就是从另一个fragment把值传给我们这个fragment(可能会有点绕,如果绕晕了就仔细瞅瞅这几个方法的回调,都是联系在一起的)。所以我们包装一个方法传入形参( 我们所需要更新的数据)。

public void addOneTask(Task task) {
    if (task != null) {
        mAdapter.addOne(task);
    }
}
然后我们这个方法再包装用到刚才所讲的:主fragment可以控制(不知道用控制妥不妥)子fragment的内容。我们需要在主fragment中给子fragment分派任务。

public boolean upDateOfTask(Task task) {
    if (task != null) {
        mFragmentDynamic.addOneTask(task);
    }
    return true;
}
最后将主fragment包装好的方法拿来给子fragment传实参(我们需要更新的数据).

boolean result = fragmentHomeOne.upDateOfTask(task);
if (result) {
    Toast.makeText(getContext(), "更新数据成功", Toast.LENGTH_SHORT).show();

}

你可能感兴趣的:(在一个fragment中给SQlite数据库insert数据,如何在另一个fragment中query到ListView并且即时刷新)