Проблема с отображением макета TabHost в новом намерении
У меня проблема с использованием TabHost в новом Намерении типа TabActivity, которое, я надеюсь, вы можете указать мне в правильном направлении. Как ни странно, он работает нормально, когда я пытаюсь просмотреть его в оригинальном Intent: setContentView (R.layout.main)
Я получаю «принудительное закрытие» и в logcat я получаю следующую ошибку, хотя мой идентификатор Tabhost = «@android: id / tabhost»:
02-18 22: 23: 11.937: ОШИБКА / AndroidRuntime (5944): вызвано: java.lang.RuntimeException: у вашего контента должен быть TabHost с атрибутом id 'android.R.id.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);
}
}
Я получаю ту же ошибку при использовании примера TabHost на сайте разработчика Android (Hellow View):
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
в android.widget.TabHost.dispatchWindowFocusChanged (TabHost.java 285) в android.view.ViewGroup.dispatchWindowFocusChanged (ViewGroup.java 640) в android.view.ViewGroup.dispatchWindowFocus.hanged (ViewGroup.Watch.jpg.jpg.java.java.jpg.jpg.jpg. (ViewGroup.java 640) на android.view.ViewRoot.handleMessage (ViewRoot.java 1645) на android.os.Handler.dispatchMessage (Handler.java 99) на android.os.Looper.loop (Looper.java 123) на андроид .app.ActivityThread.main (ActivityThread.java 3948) в java.lang.reflect.Method.invokeNative (собственный метод)
в 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 (собственный метод)