TabActivity を使用して、既に 1 つのアプリケーションを実装しています。今、TabActivity から Fragments に変更したいのですが、私のアプリケーションでは 4 つのタブと各タブを表示する必要があります。以前はTabActivityを作成していましたが、今はフラグメントに変更するとエラーが発生します...これが私のレイアウトです:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TabWidget
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tabsHeader"
android:layout_alignParentBottom="false"
android:tabStripEnabled="false"
android:hapticFeedbackEnabled="true"
android:background="@drawable/epolicy_header_logo"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="40dp"
android:layout_marginBottom="45dp"
/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@drawable/epolicy_menu_bar"
android:tabStripEnabled="false" >
</TabWidget>
</RelativeLayout>
</android.support.v4.app.FragmentTabHost>
これは私の活動です:
public class EpolicyMainActivity extends FragmentActivity {
private FragmentTabHost tabHost;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
//hide title bar
BasicDisplaySettings.toggleTaskBar(EpolicyMainActivity.this, false);
//show status bar
BasicDisplaySettings.toggleStatusBar(EpolicyMainActivity.this, true);
super.onCreate(savedInstanceState);
setContentView(R.layout.epolicy);
tabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(),android.R.id.tabcontent);
Resources res = getResources();
Intent intent;
tabHost.addTab(tabHost.newTabSpec("Login").setIndicator("Login",
res.getDrawable(R.drawable.epolicy_menu_xml_home)),
LoginActivity.class,null);
tabHost.addTab(tabHost.newTabSpec("NAB").setIndicator("NAB",
res.getDrawable(R.drawable.epolicy_menu_xml_nab)),
NABActivity.class,null);
tabHost.addTab(tabHost.newTabSpec("Contact").setIndicator("Contact",
res.getDrawable(R.drawable.epolicy_menu_xml_contact)),
ContactActivity.class,null);
tabHost.addTab(tabHost.newTabSpec("Agen").setIndicator("Agen",
res.getDrawable(R.drawable.epolicy_menu_xml_agen)),
AgenActivity.class,null);
}
私のコードに何か問題がありますか..? 私はインポートしようとしました
import android.support.v4.app.Fragment;
android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
しかし丸太猫はまだ言う cannot be cast to android.support.v4.app.Fragment
。
誰かが私に教えて、どこが私のせいなのか教えてくれることを願っています。
アップデート
これは私のlogcatです
05-28 13:39:59.780: E/AndroidRuntime(15156): FATAL EXCEPTION: main
05-28 13:39:59.780: E/AndroidRuntime(15156): java.lang.ClassCastException: id.co.ajsmsig.epolicy.LoginActivity cannot be cast to android.support.v4.app.Fragment
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.support.v4.app.Fragment.instantiate(Fragment.java:394)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.support.v4.app.FragmentTabHost.doTabChanged(FragmentTabHost.java:339)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:276)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.View.dispatchAttachedToWindow(View.java:9831)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2198)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2206)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2206)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2206)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:953)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2459)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.os.Handler.dispatchMessage(Handler.java:99)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.os.Looper.loop(Looper.java:137)
05-28 13:39:59.780: E/AndroidRuntime(15156): at android.app.ActivityThread.main(ActivityThread.java:4514)
05-28 13:39:59.780: E/AndroidRuntime(15156): at java.lang.reflect.Method.invokeNative(Native Method)
05-28 13:39:59.780: E/AndroidRuntime(15156): at java.lang.reflect.Method.invoke(Method.java:511)
05-28 13:39:59.780: E/AndroidRuntime(15156): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
05-28 13:39:59.780: E/AndroidRuntime(15156): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
05-28 13:39:59.780: E/AndroidRuntime(15156): at dalvik.system.NativeStart.main(Native Method)