0

我在模拟器上不断收到此错误:

我从教程中复制了这个,但仍然无法正常工作。当我运行我的应用程序时,它说 - 不幸的是,lastRide 已停止。有任何想法吗?

但是控制台中没有给出错误。

主要的.xml

  <?xml version="1.0" encoding="utf-8"?>
  <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@android:id/tabhost"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  tools:ignore="HardcodedText" >

   <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:id="@+id/fr"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <CheckBox android:text="rawted" />

        <CheckBox android:text="rawted" />

        <CheckBox android:text="rawted" />

         <CheckBox android:text="rawted" />
          </LinearLayout>

         </LinearLayout>

       </TabHost>

lastRideActivity.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TabHost mTabHost = getTabHost();
    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1")
            .setContent(R.id.fr));

}
4

2 回答 2

0

您需要移动setContentView以便它在您调用 tabhost 之前发生。

当您使用getTabHost框架时试图在活动视图中找到小部件,但由于尚未设置视图而无法找到。

于 2012-06-11T04:53:20.587 回答
0

改变

TabHost mTabHost = getTabHost(); // declare as TabHost in your code
setContentView(R.layout.main);

setContentView(R.layout.main);
TabHost mTabHost = getTabHost(); // declare as TabHost in your code

当您尝试通过其 id 引用任何控件(Button、TextView、TabHost)时,请始终记住。您必须始终在调用 setContentView 后执行此操作。

于 2012-06-11T05:20:11.710 回答