Android Fragment类有一个异步任务方法,如何从TabHost父类调用这个异步任务方法

Android Fragment类有一个异步任务方法,如何从TabHost父类调用这个异步任务方法,android,android-actionbar,Android,Android Actionbar,我正在开发一个应用程序,其中包含3个标签在主页上 第一个选项卡(片段类)有异步任务方法,我在父类(选项卡宿主父类)中有一个操作栏,当我单击该操作v=bar菜单项时,我想调用该异步任务方法如何调用该方法 我这样打电话是因为出错了 ((新的第一个_片段())。新的加载_任务。执行() 错误是这样的 04-10 19:35:48.768: E/AndroidRuntime(9716): FATAL EXCEPTION: main 04-10 19:35:48.768: E/AndroidRuntime

我正在开发一个应用程序,其中包含3个标签在主页上

第一个选项卡(片段类)有异步任务方法,我在父类(选项卡宿主父类)中有一个操作栏,当我单击该操作v=bar菜单项时,我想调用该异步任务方法如何调用该方法

我这样打电话是因为出错了

((新的第一个_片段())。新的加载_任务。执行()

错误是这样的

04-10 19:35:48.768: E/AndroidRuntime(9716): FATAL EXCEPTION: main
04-10 19:35:48.768: E/AndroidRuntime(9716): Process: com.example.com, PID: 9716
04-10 19:35:48.768: E/AndroidRuntime(9716): java.lang.NullPointerException
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:143)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.app.AlertDialog.<init>(AlertDialog.java:98)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.app.ProgressDialog.<init>(ProgressDialog.java:77)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.example.com$Load_Task.onPreExecute(Bol_Contacts_Screen.java:396)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.os.AsyncTask.execute(AsyncTask.java:535)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.example.com.Fragment_Class.onOptionsItemSelected(Fragment_Class.java:256)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.app.Activity.onMenuItemSelected(Activity.java:2617)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:372)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1012)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:741)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:884)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:177)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.widget.AdapterView.performItemClick(AdapterView.java:299)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.widget.AbsListView.performItemClick(AbsListView.java:1129)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2927)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.widget.AbsListView$3.run(AbsListView.java:3676)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.os.Handler.handleCallback(Handler.java:733)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.os.Handler.dispatchMessage(Handler.java:95)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.os.Looper.loop(Looper.java:136)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at android.app.ActivityThread.main(ActivityThread.java:5050)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at java.lang.reflect.Method.invokeNative(Native Method)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at java.lang.reflect.Method.invoke(Method.java:515)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
04-10 19:35:48.768: E/AndroidRuntime(9716):     at dalvik.system.NativeStart.main(Native Method)
04-1019:35:48.768:E/AndroidRuntime(9716):致命异常:main
04-10 19:35:48.768:E/AndroidRuntime(9716):进程:com.example.com,PID:9716
04-10 19:35:48.768:E/AndroidRuntime(9716):java.lang.NullPointerException
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:143)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.app.AlertDialog.(AlertDialog.java:98)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.app.ProgressDialog.(ProgressDialog.java:77)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.example.com$Load_Task.onPreExecute(Bol_Contacts_Screen.java:396)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.os.AsyncTask.execute(AsyncTask.java:535)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.example.com.Fragment\u Class.onOptionsItemSelected(Fragment\u Class.java:256)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.app.Activity.onMenuItemSelected(Activity.java:2617)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.support.v4.app.FragmentActivity.onMenuItemSelected上(FragmentActivity.java:372)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1012)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:741)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于com.android.internal.view.menu.menuitempl.invoke(menuitempl.java:152)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.android.internal.view.menu.MenuBuilder.performitemation(MenuBuilder.java:884)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.android.internal.view.menu.MenuBuilder.performitemation(MenuBuilder.java:874)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.android.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:177)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.widget.AdapterView.performItemClick(AdapterView.java:299)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.widget.AbsListView.performItemClick(AbsListView.java:1129)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.widget.AbsListView$PerformClick.run(AbsListView.java:2927)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.widget.AbsListView$3.run(AbsListView.java:3676)
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.os.Handler.handleCallback(Handler.java:733)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.os.Handler.dispatchMessage(Handler.java:95)上
04-10 19:35:48.768:E/AndroidRuntime(9716):在android.os.Looper.loop(Looper.java:136)上
04-10 19:35:48.768:E/AndroidRuntime(9716):位于android.app.ActivityThread.main(ActivityThread.java:5050)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于java.lang.reflect.Method.Invokenactive(本机方法)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于java.lang.reflect.Method.invoke(Method.java:515)
04-10 19:35:48.768:E/AndroidRuntime(9716):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
04-10 19:35:48.768:E/AndroidRuntime(9716):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
04-10 19:35:48.768:E/AndroidRuntime(9716):在dalvik.system.NativeStart.main(本机方法)

提前感谢您的帮助

您必须在您的父活动中使用类似的内容,以便用特定的子片段替换容器:

Fragment fragmentChild = new FragmentChild();
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.add(R.id.container, fragmentChild, "fragChild" ).commit();
现在,您只需编写如下代码,其中您要调用子类方法:

Fragment fragment (FragmentChild)   
getChildFragmentManager().findFragmentByTag("fragChild");
fragment.<your_async_method>(); 
Fragment片段(FragmentChild)
getChildFragmentManager().findFragmentByTag(“fragChild”);
片段(;

您可以使用父活动访问它,或者创建一个静态方法来调用您的
异步任务,但是它没有在异步静态方法中调用getActivty。@Piyush Gupta如果是正确的解决方案,你可以向上投票:)@Nani536我没有足够的声誉进行向上投票…每当我获得声誉进行向上投票时,我都会投票…@Najeebullah Shah