gpt4 book ai didi

android-fragments - 在事件中从 onLoadFinished 提交片段

转载 作者:行者123 更新时间:2023-12-04 01:40:06 26 4
gpt4 key购买 nike

我有一个事件,它使用加载器回调从服务器加载数据列表。我必须将数据列出到一个扩展的片段中

SherlockListFragment 

我尝试使用提交片段
Fragment newFragment   = CategoryFragment.newInstance(mStackLevel,categoryList);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.simple_fragment, newFragment).commit();

在 onLoadFinished 中,它给出了一个 IllegalStateException 说
java.lang.IllegalStateException: Can not perform this action inside of onLoadFinished

我在 actionbar sherlock 中提到了这个例子,但是这些例子在片段中而不是在事件中有加载器。

任何人都可以帮我解决这个问题,我可以在不从片段中调用加载器的情况下修复它!

最佳答案

Atlast,我找到了解决这个问题的方法。创建一个设置空消息的句柄并调用该处理程序 onLoadFinished()。代码与此类似。

@Override
public void onLoadFinished(Loader<List<Station>> arg0, List<Station> arg1) {
// do other actions
handler.sendEmptyMessage(2);
}

在处理程序中,
private Handler handler = new Handler()  { // handler for commiting fragment after data is loaded
@Override
public void handleMessage(Message msg) {
if(msg.what == 2) {
Log.d(TAG, "onload finished : handler called. setting the fragment.");
// commit the fragment
}
}
};

片段的数量取决于要求。
This method can be mainly used in case of stackFragments, where all fragments have different related functions.

关于android-fragments - 在事件中从 onLoadFinished 提交片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com