0

どうやって使うのか気になります

putExtra("something", something);

私のアプリケーション内の新しいアクティビティを意図して、

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("something", something)
startActivity(i);

インテントでputExtraを介して送信されたものに応じて、特定のレイアウトファイルをロードするために、送信側と受信側がどのようになるかを知る必要があります。

したがって、受信側でi.putExtra( "a"、a)を送信すると、R.layout.a_layout.xmlを使用してコンテンツビューが作成されます。

しかし、i.putExtra( "b"、b)を送信すると、R.layout.b_layout.xmlが読み込まれます。

何か案は?

4

3 に答える 3

7

これを行う気の利いた方法の 1 つは、次のように言うことです。

Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("layout", R.layout.a_layout.xml);

正しいレイアウトを新しいクラスに送信します。次に、新しいクラスで次を使用できます。

int layout = getIntent().getIntExtra("layout", R.layout.default_layout);
setContentView(layout);
于 2012-10-05T22:38:04.173 に答える
2

レイアウトを表す int を送信します。

i.putExtra("layout_id", R.layout.my_layout1);

そしてそれをロードします

setContentView(getIntent().getIntExtra("layout_id", R.layout.default_layout);
于 2012-10-05T22:37:43.977 に答える
0

のような値R.layout.a_layoutは単なるint. だから、ただ使ってputExtra("Key", R.layout.a_layout);ください。

次に、受信アクティビティで、次のように同じintものをに渡します。setContentView()

public void onCreate(Bundle savedInstanceState)
{
    int layout = getIntent().getIntExtra("Key", -1);
    if (layout != -1)
        setContentView(layout);
}
于 2012-10-05T22:36:38.297 に答える