Расширяет TabActivity не работает в Android
Однако я пытаюсь создать приложение с вкладками, но при запуске приложения я нахожу проблемы, а основной класс расширяет TabActivity. Код основного класса следующий:
package org.practical.newsupdate;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class NewsPage extends TabActivity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.newspage);
TabHost host = (TabHost) findViewById(R.id.tabhost);
host.setup();
new Intent().setClass(this, LocalNews.class);
TabSpec localTab = host.newTabSpec("Local");
localTab.setIndicator(getResources().getString(R.string.local),
getResources().getDrawable(android.R.drawable.star_on));
localTab.setContent(R.id.local_tab);
host.addTab(localTab);
new Intent().setClass(this, ForeignNews.class);
TabSpec foreignTab = host.newTabSpec("Foreign");
foreignTab.setIndicator(getResources().getString(R.string.foreign),
getResources().getDrawable(android.R.drawable.star_on));
foreignTab.setContent(R.id.foreign_tab);
host.addTab(foreignTab);
host.setCurrentTabByTag("Local");
}
}
XML является следующим:
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/newsimages" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/newsimages" />
<TextView
android:id="@+id/newspage_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/menu_newspage" />
</RelativeLayout>
<TabHost
android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/local_tab"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
<LinearLayout
android:id="@+id/foreign_tab"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
В журнале cat отображаются следующие ошибки:
12-25 18: 11: 24.846: E / AndroidRuntime (569): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной 12-25 18:11:24.846: E/AndroidRuntime(569): java.lang.RuntimeException: Невозможно запустить действие ComponentInfo{org. Practical.newsupdate/org.practical.newsupdate.NewsPage}: java.lang.RuntimeException: у вашего контента должен быть TabHost с атрибутом id 'android.R.id.tabhost' 12-25 18:11:24.846: E/AndroidRuntime(569): в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) 12-25 18:11:24.846: E/AndroidRuntime(569): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.app.ActivityThread.access$600(ActivityThread.java:122) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.os.Handler.dispatchMessage(Handler.java:99) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.os.Looper.loop(Looper.java:137) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.app.ActivityThread.main(ActivityThread.java:4340) 12-25 18:11:24.846: E/AndroidRuntime(569): на java.lang.reflect.Method.invokeNative(собственный метод) 12-25 18:11:24.846: E/AndroidRuntime(569): at java.lang.reflect.Method.invoke(Method.java:511) 12-25 18:11:24.846: E/AndroidRuntime(569): на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 12-25 18:11:24.846: E/AndroidRuntime(569): на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 12-25 18:11:24.846: E/AndroidRuntime(569): в dalvik.system.NativeStart.main(собственный метод) 12-25 18: 11: 24.846: E / AndroidRuntime (569): вызвано: java.lang.RuntimeException: ваш контент должен иметь TabHost с атрибутом id 'android.R.id.tabhost' 12-25 18:11:24.846: E/AndroidRuntime(569): в android.app.TabActivity.onContentChanged(TabActivity.java:131) 12-25 18:11:24.846: E/AndroidRuntime(569): в com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:254) 12-25 18:11:24.846: E/AndroidRuntime(569): at android.app.Activity.setContentView(Activity.java:1835) 12-25 18:11:24.846: E/AndroidRuntime(569): at org.practical.newsupdate.NewsPage.onCreate(NewsPage.java:13) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.app.Activity.performCreate(Activity.java:4465) 12-25 18:11:24.846: E/AndroidRuntime(569): на android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 12-25 18:11:24.846: E/AndroidRuntime(569): на Android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919) 12-25 18:11:24,846: E/AndroidRuntime(569): ... еще 11
Ошибка, которая показывает, что приложение внезапно перестало работать. Может кто-нибудь, пожалуйста, помогите мне?
Заранее благодарю за любую помощь
1 ответ
Следующая строка выдает ошибку Java.lang.RuntimeException: ваш контент должен иметь TabHost с атрибутом id 'android.R.id.tabhost'
Имя пакета совпадает с именем пакета Java или отличается. Если да, пожалуйста, импортируйте полный квалифицированный R класс