gpt4 book ai didi

android - 使用 fragment 中的上下文时出错

转载 作者:行者123 更新时间:2023-11-29 20:56:15 25 4
gpt4 key购买 nike

一切正常。问题-我呢?以及如何调用 contexthow 来调用此方法?

在我的 Activity 中:

@Override
public void setTitle(CharSequence title) {
mTitle = title;
getSupportActionBar().setTitle(mTitle);
}

在我的 fragment 中我调用了方法:

 public void setData(){
new MyAsincTask(getActivity()){

@Override
protected void onPreExecute() {
}

@Override
protected void onPostExecute(Document document) {
super.onPostExecute(document);
........

getActivity().setTitle("Сотрудники(city:" + city + ",holiday:" + holiday + ")");
}


}.execute(link);
}

它有效。但是如果在移动到应用程序的另一部分的过程中崩溃

但是如果你添加

if (getActivity()!=null)
getActivity().setTitle("Сотрудники(city:" + city + ",holiday:" + holiday + ")");

一切正常。问题-我呢?以及如何调用上下文

12-24 05:18:28.805      460-460/com.managment.pavel.managmentgradle E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.managment.pavel.managmentgradle.fragments.EmployeessList$1.onPostExecute(EmployeessList.java:114)
at com.managment.pavel.managmentgradle.fragments.EmployeessList$1.onPostExecute(EmployeessList.java:69)
at android.os.AsyncTask.finish(AsyncTask.java:417)
at android.os.AsyncTask.access$300(AsyncTask.java:127)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

当您导航到应用程序的另一部分时,该 fragment 已分离,因此 getActivity 将返回 null。由于更改已销毁的 Activity 的标题没有意义,因此像您一样将 null 检查放入可能就可以了。

但是,如果您的异步任务必须回调 Activity ,这可能会成为一个更大的问题。我建议使用 Otto 等事件总线将数据从异步任务传回 UI。

这是我关于这个主题的博文:Event Bus Usage on Android

关于android - 使用 fragment 中的上下文时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631792/

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