2011-12-25 15 views
1

タブ付きアプリケーションを作成しようとしていますが、アプリケーションを実行しようとすると問題が見つかってしまい、メインクラスがTabActivityを継承しています。 は、主クラスコードは以下の通りです: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> 

ログの猫は、次のエラーを示しています

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:あなたのコンテンツには、id属性が 'android.R.id.tabhost'のTabHostが必要です。 12-25 18:11:24.846:E/AndroidRuntime(569):android.app.ActivityThread.performLaunchActivity(ActivityThread。 Android/AndroidRuntime(569):android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 12-25 18:11:24.846:E/AndroidRuntime(java:1955) 12-25 18:11:24.846: 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/AndroidR (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 .com.in(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:コンテンツには、id属性が 'android.R.id.tabhost'のTabHostが必要です。 12-25 18:11:24.846:E/A ndroidRuntime(569):android.app.TabActivity.onContentChanged(TabActivity.java:131) 12-25 18:11:24.846:E/AndroidRuntime(569):com.android.internal.policy.impl.PhoneWindow。 12/5 18:11:24.846:E/AndroidRuntime(569):android.app.Activity.setContentView(Activity.java:1835) 12-25 18:11:24.846:setContentView(PhoneWindow.java:254) 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もっと見る

表示されているエラーは、アプリケーションが突然停止したことです。誰か助けてくれますか?あなたのコンテンツは、ID属性のandroid.R.idあるTabHostを持っている必要があります任意の助け

+0

logcatに入っている例外を投稿してください –

+0

私はlogcat例外を今質問に投稿しました – xarababe

答えて

1

次の行がエラー Java.lang.RuntimeExceptionを与えているため、事前に

感謝。tabhost '

パッケージ名はJavaパッケージ名と同じか、それとも異なっていますか?はいの場合、完全修飾Rクラスをインポートしてください

+0

ありがとうございました。それは今のところ働いています – xarababe

+0

答えを受け入れてください! –

関連する問題