在新Intent中显示TabHost布局的问题

3 android android-widget android-intent android-tabhost

我在TabActivity类型的新Intent中使用TabHost时遇到问题,我希望你能指出我正确的方向.当我尝试在原始Intent中查看它时,它可以正常工作:setContentView(R.layout.main)

我得到一个"强制关闭"并在logcat中,即使我的Tabhost id ="@ android:id/tabhost",我也会收到以下错误:

02-18 22:23:11.937:ERROR/AndroidRuntime(5944):引起:java.lang.RuntimeException:您的内容必须有一个TabHost,其id属性为'android.R.id.tabhost'

我在Manifest.xml文件中声明了第二个意图:XML:

<activity android:name=".NextActivity" android:label="@string/app_name" > 
Run Code Online (Sandbox Code Playgroud)

在第一个活动(MainActivity)中,我使用extras启动第二个intent(NextActivity),如下所示:

Intent nextActivity = new Intent(MainActivity.this,NextActivity.class); 
Bundle b_next=new Bundle(); 

b_next.putString("s_string", myString); 

nextActivity.putExtras(b_next); 
Run Code Online (Sandbox Code Playgroud)

在我的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); 

        } 
}
Run Code Online (Sandbox Code Playgroud)

我在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>
Run Code Online (Sandbox Code Playgroud)

在此先感谢大家...

澄清:这是我从LogCat真正得到的:

显示java.lang.NullPointerException
在android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java 285)在android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)在android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)在机器人. view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640)在android.view.ViewRoot.handleMessage(ViewRoot.java 1645年)在android.os.Handler.dispatchMessage(Handler.java 99)在android.os.Looper.loop(活套. java 123)在android.app.ActivityThread.main(ActivityThread.java 3948)at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java 521)at com. android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java 782)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java 540)在dalvik.system.NativeStart.main(本机方法)

whi*_*win 7

我有同样的问题.幸运的是,有一个快速修复:

  1. 删除R文件.
  2. 等待IDE生成该文件.
  3. 利润!

  • 有谁知道这个有用的原因?它对我有用.谢谢. (2认同)