我想在片段布局中创建Tabhost,但我有问题 并且我从导航抽屉
导航到此片段E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.amr.fujeraapp, PID: 20705
java.lang.NullPointerException
at com.example.amr.fujeraapp.MedicineFragment.onCreateView(MedicineFragment.java:28)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2189)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:757)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2355)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2146)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2008)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
at dalvik.system.NativeStart.main(Native Method)
I/Process: Sending signal. PID: 20705 SIG: 9
Application terminated.
我不知道问题是什么,但我的代码是
public class MedicineFragment extends android.support.v4.app.Fragment {
@Nullable
View myView;
FragmentTabHost tabhost;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.medicinelayout, container, false);
tabhost = new FragmentTabHost(getActivity());
tabhost = (FragmentTabHost) tabhost.findViewById(R.id.medicinetab);
tabhost.setup(getActivity(),getChildFragmentManager(),R.layout.medicinelayout);
TabHost.TabSpec spec = tabhost.newTabSpec("tag1");
spec.setIndicator(" بواسطة الفئة");
spec.setContent(R.id.tab1med);
tabhost.addTab(spec);
spec =tabhost.newTabSpec("tag2");
spec.setContent(R.id.tab2med);
spec.setIndicator(" بواسطة الشركة");
tabhost.addTab(spec);
return tabhost;
}
}
medicinelayout.xml
<TabHost
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/medicinetab">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/tab1med"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:id="@+id/tab2med"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
抱歉英语不好
答案 0 :(得分:0)
尝试更改此行 tabhost =(FragmentTabHost)tabhost.findViewById(R.id.medicinetab) 至 tabhost =(FragmentTabHost)myView.findViewById(R.id.medicinetab)