如何检查片段是否存在且在容器中是否可见?如果它存在,如何删除它?

时间:2016-08-08 09:28:11

标签: java android

我正在调用一种方法,每次都会在按钮点击时显示一些数据。 每次单击按钮时,我都会调用

方法
  • 创建一个frag对象
  • 捆绑frag的数据
  • 将数据放入frag
  • 将frag添加到我的主Activity
  • 中的视图中
  • 提交交易

然后我面临'引起:java.lang.IllegalStateException:commit has called'

单击按钮上的

我需要检查碎片是否已经存在,然后替换它或其他东西。我很困惑。

这是代码。

public void retrieve_and_display_data(String co) {
     String res = null;

     try {
         res = new getvaluefromservicecall().execute(co, "", "").get();
     } catch (InterruptedException e) {
         e.printStackTrace();
     } catch (ExecutionException e) {
         e.printStackTrace();
     }

     List < String > company_stock_details = Arrays.asList(res.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1));

     stock_price_frag frag_obj = new stock_price_frag();



     Bundle b = new Bundle();
     b.putString("Co_name", "data1");
     b.putString("Co_first", "data2");
     b.putString("Co_last", "data3");

     frag_obj.setArguments(b);


     ft.add(R.id.frag_container, frag_obj, "fragment");

     ft.commit();

     //error on commit
 }

1 个答案:

答案 0 :(得分:0)

fragmentTransaction.replace(R.id.fragment_container, fragment, MainActivity.TAG);

在将片段添加到帧布局时使用TAG

只需在按钮单击时添加检查

if (getSupportFragmentManager().findFragmentByTag(MainActivity.TAG) instanceof MyFragment)
      //my fragment is visible
 else
      //other fragment is visibile