我正在调用一种方法,每次都会在按钮点击时显示一些数据。 每次单击按钮时,我都会调用
方法然后我面临'引起: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
}
答案 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