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

标签 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): Caused by: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

我已经在 Manifest.xml 文件中声明了第二个 Intent : XML:

<activity android:name=".NextActivity" android:label="@string/app_name" > 

在第一个 Activity (MainActivity) 中,我启动了第二个 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); 

在我的 NextActivity.java 文件中,我得到了额外的内容并尝试显示 TabHost View :

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
at android.widget.TabHost.dispatchWindowFocusChanged(TabHost.java 285) at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640) at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java 640) at android.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)
at 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) at dalvik.system.NativeStart.main(Native Method)

最佳答案

我遇到了同样的问题。幸运的是有一个快速修复:

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

关于android - 在新 Intent 中显示 TabHost 布局的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295352/

相关文章:

android-widget - Android Widgets 独立的应用程序?

java - 将单选按钮和复选框值传递给另一个 Activity

安卓开发: Using intent syntax

android - 在没有 .class 的情况下开始 Activity

android - 配置 RecyclerView 以作为聊天工具工作

java - 从列表中删除会在迭代 : Java->Kotlin 时抛出 IndexOutOfBoundsException

android - 如何克隆/复制以编程方式更改的 TextView 对象的行为?

android - Kotlin 中的 map 和 mapTo 有什么区别

android - 通过共享 Intent android 共享到 facebook、twitter

android - 在 ViewFlipper 小部件中的各个元素上设置点击监听器