2

私はアンドロイド TabWidget を使用しており、すべてのタブを管理するメイン アクティビティが 1 つあります。各タブには独自のアクティビティがあります。

private void setTabs()
{
    addTab("News", NewsActivity.class);
    addTab("Project", ProjectActivity.class);
    addTab("About", AboutActivity.class);
    addTab("Contact", ContactActivity.class);
}

各タブのデータは、JSON 形式でサーバーからダウンロードされます。私の目標は、アプリケーションの開始時にすべてのデータをダウンロードし、それを各タブ (アクティビティ) で使用することです。

これらの変数をメイン アクティビティから、タブを管理している他のアクティビティと共有する可能性はありますか? Intent クラスの使用については知っていますが、タブを使用した別の簡単な解決策があるかもしれません。

どうもありがとうございました。

4

4 に答える 4

5

メイン アクティビティで静的変数を宣言し、データを格納します。

例えば、public static integer myInt;

myInt = ...;

他のアクティビティに移動するときは、 を使用MainActivity.myIntしてその値にアクセスし、必要に応じて更新することもできます。インテントを使用して変数を渡す必要はありません。

于 2012-08-31T20:37:12.230 に答える
4

アプリ全体で使用する可能性のある変数やオブジェクトを保持するクラスを作成できます。

public class myClass {
    private static int myInt;
    public static void setMyInt(int i)
    {
        myInt = i;
    }

    public static int getMyInt()
    {
        return myInt;
    }

}

次に、どこからでも任意の変数を設定して、どこでも使用できます。

myClass.setMyInt(10);
int i = myClass.getMyInt();
于 2012-08-31T20:44:38.363 に答える
3

を作成することもできますclass MyAppication extends Application(マニフェストに追加する必要もあります)。このMyApplicationクラスはアプリの実行中ずっと存在するため、そこに物を保存できます。

于 2012-08-31T20:31:57.847 に答える
1

目的に合わせてフラグメントを使用する方が良いと思います..

タブホスト/タブウィジェットと、それぞれのフラグメントを表示するレイアウトを持つメイン アクティビティがあります。

現在選択されているタブに基づいて、対応するフラグメントをレイアウトに表示します。

このようにして、フラグメントが使用する必要のある変数データをメイン アクティビティに含めることができます。

すべてのフラグメントは、表示されているアクティビティ内のデータにアクセスできます。getter と setter を必ず作成してください。

于 2012-08-31T20:36:18.320 に答える