我在 TabActivity 类型的新 Intent 中使用 TabHost 时遇到问题,希望您能指出正确的方向。有趣的是,当我尝试在原始 Intent 中查看它时它工作正常: setContentView(R.layout.main)
我得到一个“强制关闭”并且在 logcat 中,即使我的 Tabhost id =“@android:id/tabhost”,我也会收到以下错误:
02-18 22:23:11.937: ERROR/AndroidRuntime(5944): Caused by: java.lang.RuntimeException: 您的内容必须有一个 id 属性为 'android.R.id.tabhost' 的 TabHost
我在 Manifest.xml 文件中声明了第二个意图:XML:
<activity android:name=".NextActivity" android:label="@string/app_name" >
在第一个活动 (MainActivity) 中,我启动了第二个意图 (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 开发者网站(Hellow View)上使用 TabHost 示例时遇到了同样的错误:
主要.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
在 android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640) 在 android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640) 在 android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java 285)。 view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640) 在 android.view.ViewRoot.handleMessage(ViewRoot.java 1645) 在 android.os.Handler.dispatchMessage(Handler.java 99) 在 android.os.Looper.loop(Looper. java 123) 在 android.app.ActivityThread.main(ActivityThread.java 3948) 在 java.lang.reflect.Method.invokeNative(Native Method)
在 java.lang.reflect.Method.invoke(Method.java 521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java 782) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit .java 540) 在 dalvik.system.NativeStart.main(Native Method)