[英]java.lang.IllegalStateException Fragment not attached to Activity
[英]java.lang.IllegalStateException: Fragment not attached to Activity issue in android
在使用Fragment用法調用活動期間,我遇到一個奇怪的問題。 我收到類似的錯誤消息,
java.lang.IllegalStateException:片段ScoreFragment {ee2b833 id = 0x7f0e0198}未附加到Activity
在第146行。我的具有錯誤的Fragment代碼如下所示
if(mPageFlag.equalsIgnoreCase(getString(R.string.winners))){
我的完整代碼如下
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mPageFlag = getArguments().getString(ARG_PAGE_FLAG);
}
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser && !mIsPageLoaded){
mContext = getActivity();
mIsPageLoaded = true;
if(mPageFlag.equalsIgnoreCase(getString(R.string.winners))){
new getcontestscorewinners(mContext).execute();
}else{ //
new getcontestscorewinnersNew(mContext).execute();
}
}
}
public class getcontestscorewinners extends AsyncTask<String, Void, String> {
boolean response = false;
private Context mContext;
public getcontestscorewinners(Context context) {
mContext = context;
}
@Override
protected void onPreExecute() {
progress = ProgressDialog.show(mContext, "Processing...",
"Please wait....");
}
@Override
protected String doInBackground(String... params) {
NetworkTask.getContestScoreWinners(winnerHandler);
return "";
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
讓我知道是否有人可以幫助我擺脫困境。 謝謝。
嘗試使用isAdded():
如果片段當前已添加到其活動中,則返回true。
因此,您的代碼應如下所示:
if(isAdded() && mPageFlag.equalsIgnoreCase(getString(R.string.winners))){
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.