片段类有一个异步任务方法,我如何从 TabHost 父类调用这个异步任务方法



我正在开发一个应用程序,它在主页中包含 3 个选项卡。

第一个选项卡(片段类)

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

我这样称呼它得到错误

(new First_Fragment())).new Load_Task.execute();

错误是这样的

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)

提前感谢您的帮助

您必须在父活动中使用了类似的东西,您希望将容器替换为特定的子片段:

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>(); 

最新更新