Java 从数据库中删除数据时如何引用片段

Java 从数据库中删除数据时如何引用片段,java,android,android-fragments,Java,Android,Android Fragments,我有下面的代码从数据库中删除数据。 所以我删除了数据,但我想从这里更新片段 我怎样才能引用片段 // Remove entry from database table database.delete(FAVORITES_TABLE, FAVORITES_ITEM_ID + " = " + soundObject.getItemID(), null); // Refesh current fragment ???????????????????????????

我有下面的代码从数据库中删除数据。 所以我删除了数据,但我想从这里更新片段

我怎样才能引用片段

 // Remove entry from database table
                database.delete(FAVORITES_TABLE, FAVORITES_ITEM_ID + " = " + soundObject.getItemID(), null);

// Refesh current fragment 
????????????????????????????????
这是我在Fragment中使用的代码,可以使它(按按钮时)正常工作,但我不想点击refesh按钮进入refesh页面。当数据库自身发生变化时,我需要片段refesh

 public void refersh()
    {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.detach(this).attach(this).commit();
    }
有什么想法吗?
谢谢

您在一次提交中再次分离和附加,因此它不起任何作用。做两次

public void refersh(){
    FragmentTransaction ft1 = getFragmentManager().beginTransaction();
    ft1.detach(this).commit();
    FragmentTransaction ft2 = getFragmentManager().beginTransaction();
    ft2.attach(this).commit();
}
也有可能您应该使用
getSupportFragmentManager
而不是
getFragmentManager


这可能不是最好/最有效的解决方案,但您只发布了一个小片段…

简单来说,您可以使用:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(this).attach(this).commit();

我认为您希望在DB数据更新时刷新片段内容

如果是这样,请拆下碎片并再次连接


Fragment_TAG是您在创建片段时给它起的名称,要刷新当前片段内容,您可以在方法
refresh()


希望对你有用

选中“使用处理程序刷新您的片段”当您访问数据库时,我的意思是我希望更新片段不是从按钮,而是在db更改时。创建一些接口,它将调用
referesh()
方法(是的,使用typeo),但仅当我从huntle调用此函数时。但是我有一个evenhandlerclass,我想从那里调用它。好的,我有一个带有删除文件操作的菜单项。(当我点击remove时,文件将从数据库中删除,但片段不会重新网格化)我应该将代码放在哪里?THX当您从片段调用删除文件操作时,然后从那里调用上述代码。
int android.support.v4.app.fragment.mContainerId'位于android.support.v4.app.FragmentTransition.addToFirstInLastOut的空对象引用(FragmentTransition.java:1017)
获取此错误:(请检查此错误,这可能会帮助您解决…(Y)
// Reload current fragment
   Fragment f1 = null;
   f1 = getSupportFragmentManager().findFragmentByTag("Fragment_TAG");
   final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
   ft.detach(f1);
   ft.attach(frg);
   ft.commit();
public void refresh()
   {
            Fragment fragment = null;
            fragment = new Current_Fragment_Name(); //replace the  Current_Fragment_Name with your current fragment name
            FragmentTransaction ft =  getActivity().getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.content_frame, fragment);
            ft.commit();
   }