TabActivityタイプの新しいインテントでTabHostを使用する際に問題が発生しました。これにより、正しい方向を示すことができます。おかしなことに、元のインテントで表示しようとすると正常に動作します:setContentView(R.layout.main)
「強制終了」が発生し、logcat内で、Tabhost id = "@ android:id / tabhost"であっても、次のエラーが発生します。
02-18 22:23:11.937:エラー/ AndroidRuntime(5944):原因:java.lang.RuntimeException:コンテンツにはid属性が「android.R.id.tabhost」であるTabHostが必要です
Manifest.xmlファイルで2番目のインテントを宣言しました:XML:
<activity android:name=".NextActivity" android:label="@string/app_name" >
最初のアクティビティ(MainActivity)内で、次のように、2番目のインテント(NextActivity)を追加で開始します。
Intent nextActivity = new Intent(MainActivity.this,NextActivity.class);
Bundle b_next=new Bundle();
b_next.putString("s_string", myString);
nextActivity.putExtras(b_next);
NextActivity.javaファイルで、エクストラを取得し、TabHostビューを表示しようとします。
public class NextActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String myString;
Bundle b_initial;
b_initial = getIntent().getExtras();
myString = b_initial.getString("s_string");
setContentView(R.layout.main);
}
}
Android Developerサイト(Hellow View)でTabHostの例を使用しても同じエラーが発生します。
Main.xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is a tab" />
<TextView
android:id="@+id/textview2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is another tab" />
<TextView
android:id="@+id/textview3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is a third tab" />
</FrameLayout>
</LinearLayout>
</TabHost>
よろしくお願いします...
明確化:これは私がLogCatから実際に得たものです:
java.lang.NullPointerException
at android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java 285)at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)atandroid。 view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)at android.view.ViewRoot.handleMessage(ViewRoot.java 1645)at android.os.Handler.dispatchMessage(Handler.java 99)at android.os.Looper.loop(Looper。 java 123)at android.app.ActivityThread.main(ActivityThread.java 3948)at java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java 521)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java 782)at com.android.internal.os.ZygoteInit.main(ZygoteInit .java 540)dalvik.system.NativeStart.main(ネイティブメソッド)