2012-04-19 9 views
0

タブのレイアウトをしようとしています。チュートリアルコード(下記)を使用していますが、動作しません。 LogCatこのエラーを与える:アンドロイドタブのレイアウトエラー

4月19日19:02:16.297:ERROR/AndroidRuntime(455):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {jusbrz.bakalauras/jusbrz.bakalauras.FilesTabsActivity}:Javaの.lang.RuntimeException:あなたのコンテンツには、id属性が 'android.R.id.tabhost'のTabHostが必要です。

マニフェストに新しいアクティビティを追加しました。

XML:メインの活動でこのコードを使用して

<?xml version="1.0" encoding="utf-8"?> 
<TabHost 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<LinearLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<TabWidget 
android:id="@+id/tabs" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" > 
</TabWidget> 
<FrameLayout 
android:id="@+id/tabcontent" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
</FrameLayout> 
</LinearLayout>  
</TabHost> 

package jusbrz.bakalauras; 
import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TabHost; 
public class FilesTabsActivity extends TabActivity{ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.files_tabs_layout); 

    TabHost tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, AllFilesTabActivity.class); 

    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost.newTabSpec("Visi").setIndicator("Visi").setContent(intent); 
    tabHost.addTab(spec); 
} 
} 

が問題かもしれませんか?

EDITED

import android.app.TabActivity; 
import android.os.Bundle; 

public class AllFilesTabActivity extends TabActivity{ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.all_files_tab_layout); 

     } 

} 

答えて

1

あなたはlayout.updateレイアウトでtabhost IDが不足しているなど:

TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 
TabSpec firstTabSpec = tabHost.newTabSpec("Visi"); 
firstTabSpec.setIndicator("Visi").setContent(new Intent(this,AllFilesTabActivity.class)); 
/** Add tabSpec to the TabHost to display. */ 
tabHost.addTab(firstTabSpec); 

とIF:

<TabHost 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@android:id/tabhost"> 

あなたのクラスFilesTabsActivityを更新あなたはありますかあなたが動的にTABを追加する場合:

setContentView(R.layout.files_tabs_layout); 
+0

これは役に立たなかった。エラーは依然として表示されます – LTnewbie

+0

@LTnewbie: 'Projects - > Clean'を使用してプロジェクトをクリーンアップ –

+0

@LTnewbie:編集の回答を参照 –

0

をごTabActivityを使用しようとしている場合、あなたはあなたのTabHostのアンドロイドID値として@android:id/tabhost使用する必要があります。

StackOverflowでいくつかの質問を閲覧すると、「プロジェクト - >クリーン」を実行してEclipseを再起動することも役立つようです。

関連する問題