У меня проблема с использованием TabHost в новом Намерении типа TabActivity, которое, я надеюсь, вы можете указать мне в правильном направлении. Как ни странно, он работает нормально, когда я пытаюсь просмотреть его в исходном намерении: setContentView (R.layout.main)
Я получаю «принудительное закрытие» и в logcat я получаю следующую ошибку, хотя мой идентификатор Tabhost = «@android: id / tabhost»:
02-18 22: 23: 11.937:
ОШИБКА / AndroidRuntime (5944): причина:
java.lang.RuntimeException: ваш
содержимое должно иметь TabHost, чей идентификатор
атрибут '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.dispatchWindowFocusChanged (ViewGroup.java 640)
на android.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)
at java.lang.reflect.Method.invokeNative (Native
Метод)
в 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)
at dalvik.system.NativeStart.main (Native
Метод)