0

私のプログラムの概要は次のとおりです。

アンドロイド 2.2

  • MainActivity (タブホスト)

4 つのタブ

  • 検索 (SearchActivity を使用) (デフォルト)
  • アーティスト (ArtistsActivity を使用)
  • アルバム (AlbumsActivity を使用)
  • 曲 (SongsActivity を使用)

アプリは、既定の [検索] タブと SearchActivity まで読み込まれます。検索文字列を入力して [検索] をクリックします (データはグローバル変数クラスに保存されます)。Artists タブを手動でクリックすると、ArtistsActivity と適切なビューが読み込まれ、このグローバル変数クラスからデータが取得され、処理が実行されます。

すべてのタブを手動でクリックして、タブを切り替えることができます。

ただし、任意のタイプの setCurrentTab コマンドを使用してユーザーの次のタブに自動的に切り替えると、プログラムはヌル ポインター例外でクラッシュします。

オンラインで見つけた複数の異なる方法を試しましたが、どれもうまくいきませんでした。

ユーザーとしてタブを手動でクリックすると、アプリは完全に正常に動作します。しかし、この機能が自動的に発生するようにプログラムする必要があります。

自動的に行われる必要があることの例: App Loads->SearchTab-> 検索文字列にユーザーを入力し、[検索] ボタンをクリックします->ArtistsTab

意味がありません。ユーザーとして次のタブをクリックして手動で切り替えることができるのに、次のタブに自動的に切り替える機能をプログラムできないのはなぜですか? すでに問題なく動作しています。ユーザーが次のタブを手動でクリックする必要がないように、コード内でこれらのタブをクリックするアクションを複製する必要があるだけです。

誰にも提案はありますか?

4

1 に答える 1

0

タブホスト/タブウィジェットを静的として宣言し、 setcurrent タブを呼び出して、アクティビティからその静的タブウィジェットにアクセスします-

TabActivity.tabhost.setcurrentTab(1);
于 2012-03-21T21:08:24.723 に答える