0
Я хотел бы создать Tabhost внутри макета фрагмента, но у меня есть проблема и я перейти к этому фрагменту из навигационного ящикаСоздание 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>
жаль плохой английский
E/AndroidRuntime : FATAL EXCEPTION: main Процесс: com.example.amr.fujeraapp, PID: 23107 java.lang.ClassCastException: android.widget.TabHost нельзя передать в android.support.v4.app.FragmentTabHost –
Как вы можете видеть из ошибка типов просмотра не совпадает. В medicinelayout xml. Замените TabLayout на android.support.v4.app.FragmentTabHost. – Ashish
как насчет tabhost.setup (getActivity(), getChildFragmentManager(), R.layout.medicinelayout); следует заменить layout.medicinlayout на вкладку id.medicine? –