【问题标题】:How do I reset fragment in View如何在视图中重置片段
【发布时间】:2015-09-20 14:06:36
【问题描述】:

我有问题。如何重置视图或适配器中的片段?

我要查看点击->数据更改->查看完成->片段重置

它正在做:

public class CustomView extends View{

@Override
protected void onDraw(Canvas canvas) {

  builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {

     switch (which) {
       case 1: {
        @Override
        public void onClick(DialogInterface dialog, int which) {
                    Fragment fragment = new Z_Hello();
                    FragmentManager manager = fragment.getFragmentManager();
                    FragmentTransaction ft = manager.beginTransaction();
                    ft.replace(R.id.pager, new Z_Hello());
                    ft.commit();

                    }
              }
  }

也这样做了,但都出错了

Fragment frg = new Z_Hello(); 
frg = frg.getFragmentManager().findFragmentById(R.id.pager); 
final FragmentTransaction ft = frg.getFragmentManager().beginTransaction(); 
ft.detach(frg); ft.attach(frg); ft.commit(); 

【问题讨论】:

  • Reset/reload fragment container 的可能重复项
  • 不要在 onDraw 中做任何事情!顾名思义,它仅用于绘图。它可能每秒被调用多次。我很确定您不需要每秒多次创建匿名类(侦听器)的新实例。在其他地方做一次。

标签: android android-fragments reset


【解决方案1】:

首先,在onDraw中执行这样的代码——第一种获得刹车的方法。 最简单的方法是断开并重新连接片段:

Fragment frg = null;
frg = getFragmentManager().findFragmentByTag("Your_Fragment_TAG");
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(frg);
ft.attach(frg);
ft.commit();

【讨论】:

  • 谢谢,这个类扩展视图执行代码来错误,Your_Fragment_TAG 是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2012-10-23
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
相关资源
最近更新 更多