8

Google の「高度な」タブウィジェットの例を実装しようとしています。しかし、呼び出そうとするとtabHost.addTab(spec);、デバッガーからスタック トレースが取得されます。申し訳ありませんが、ここにスタック トレースはありませんが、他の人が同じ問題を抱えているかどうか疑問に思っています (このコードには多くのタイプミスと不足している情報があり、コンパイルさえできませんでした.

このコードの修正済み/実行中のバージョンを教えてもらえますか?

必要な更新情報は次のとおりです。

<activity android:name=".ArtistsActivity"></activity>
<activity android:name=".AlbumsActivity"></activity>
<activity android:name=".SongsActivity"></activity>
4

4 に答える 4

12

私はこのチュートリアルを最後の1時間ほど過ごしました。これが私が扱った問題と修正です:

ステップ2:アクティビティを作成するときに、マニフェストを介してアクティビティを作成しない場合は、手動でマニフェストに追加する必要があります。

次の行をAndroidManifest.xmlに追加します。

  <activity android:name=".AlbumsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>
  <activity android:name=".ArtistsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>
          <activity android:name=".SongsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>

ステップ3: ic_tab_artists.xmlファイルを作成するように指示されているだけです。ic_tab_songs.xmlとic_tab_albums.xmlにも作成する必要があります。ic_tab_artists.xmlを複製するだけです(または、HelloTabView.javaタブの仕様を変更して、タブごとにartists.xmlファイルを使用します)。

ステップ4: / res / layout / mainの下の最後から3番目の行にタイプミスがあります(:)の代わりに;

      android:padding="5dp" />
    </LinearLayout>
</TabHost>

手順6: tabHostの代わりにmTabHostの呼び出しを使用するタイプミスがあります。それを変更。

すでに引用したように、最後の行のgetIntent()関数は適切ではありません。IDに基づいてタブを呼び出すだけです。例えば:

tabHost.setCurrentTabByTag("albums");
于 2010-02-11T05:07:17.743 に答える
9

Android Developersサイトの現在のTabHostの例には、1つのエラーが含まれており、例の実行を妨げる重要な手順も省略されています。

最初に:HelloTabWidgetクラスに追加されたonCreate()メソッドで、mTabHostと呼ばれるTabHostオブジェクトを使用しようとします。これは無効です。tabHostである必要があります。

2番目:チュートリアルでは、AndroidManifest.xmlにも各アクティビティを追加するために必要な詳細が省略されています。これがないと、コードは機能せず、実行しようとするたびに「強制終了」します。

于 2010-02-08T04:44:48.153 に答える
2

また、

android:theme="@android:style/Theme.NoTitleBar"

私がそれを置き換えると、私にはうまくいきません

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

それは正常に動作します。

于 2010-03-21T09:41:13.463 に答える
1

Ted によって修正された例は、3 つのアクティビティすべてに次の行が含まれていない場合にも機能します。

android:theme="@android:style/Theme.NoTitleBar"

これは、タブ ラベルに加えてタイトル バーが必要な場合に便利です。

于 2010-04-22T17:36:40.370 に答える