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