расширяет TabActivity не работает в Android - PullRequest
1 голос
/ 25 декабря 2011

Я пытаюсь создать приложение с вкладками, но при попытке запустить приложение я нахожу проблемы, а основной класс расширяет 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): в 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): at 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): на android.app.Activity.setContentView (Activity.java:1835) 12-25 18: 11: 24.846: E / AndroidRuntime (569): на 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 Ответ

1 голос
/ 25 декабря 2011

Следующая строка выдает ошибку Java.lang.RuntimeException: ваш контент должен иметь TabHost с атрибутом id 'android.R.id.tabhost'

Является ли имя пакета таким же, как имя пакета Javaили разные.Если да, пожалуйста, импортируйте полный квалифицированный R класс

...