重新加载片段,Edittext的文本未清除

时间:2017-06-16 04:50:54

标签: android android-fragments android-edittext reset fragmentmanager

在我的片段中有很多微调器和编辑文本,提交按钮是保存数据,重置按钮是重置所有元素(编辑文本和旋转器)。我使用了以下代码来重置所有控件

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

但它没有清除editext。重置所有微调器,但editext的文本保持不变

2 个答案:

答案 0 :(得分:0)

  

detach()。detach()在支持库更新25.1.0之后无法运行(可能更早)。更新后此解决方案正常工作:

注意:

  

使用runOnUiThread()来使用commitNowAllowingStateLoss

    getSupportFragmentManager()
    .beginTransaction()
    .detach(oldFragment)
    .commitNowAllowingStateLoss();

   getSupportFragmentManager()
    .beginTransaction()
    .attach(oldFragment)
    .commitAllowingStateLoss();

答案 1 :(得分:0)

试试这个:

 FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
 ft.remove(this).replace(R.id.container, YourFragment.newInstance());;
 ft.commit();

性能说明:如果您只是更换片段只是为了重置值,那么最好手动重置值,因为与手动重置值相比,替换整个片段需要大量额外开销。