0

ホームページにスピナーがあり、スピナーから値を選択して [送信] をクリックすると、次のページにいくつかのテキスト ボックスが読み込まれます。

ただし、スピナーから選択した値に応じて異なるレイアウトが表示されるようにするにはどうすればよいですか。現在 if ステートメントを使用しようとしていますが、これは最初の選択でのみ機能し、それ以外の場合はアプリでエラーが発生します (アプリケーションが予期せず停止しました ... 強制終了:

    String RefType = getIntent().getStringExtra("REFTYPE");
    if (RefType.equals("spinner_value_1"))
    {
       setContentView(R.layout.layoutvalue1);  
    }
    else if (RefType.equals("spinner_value_2"))
    {
       setContentView(R.layout.layoutvalue2); 
    }

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

0

contentView を 2 回設定しようとしているためにエラーが発生するのではないかと思います。クラスの先頭に *(change here) を
追加int layoutToLoad = 0;すると、何をロードするかを判断するのに役立ちます。次に、onCreateで:

if (layoutToLoad == 0)
{
    setContentView(R.layout.choiceLayout); //whatever the layout with the spinner is
    //alternatively you can make the spinner via code  
}
else if (layoutToLoad == 1))
{
    setContentView(R.layout.layout1);
}
else if (layoutToLoad == 2))
{
    setContentView(R.layout.layout2);
}
//etc

次に、onOptionSelected を処理する場所:

String RefType = getIntent().getStringExtra("REFTYPE");
if (RefType.equals("spinner_value_1"))
{
    layoutToLoad = 1;
    onCreate(null);  
}
else if (RefType.equals("spinner_value_2"))
{
    layoutToLoad = 2;
    onCreate(null);  
}
//etc
于 2012-01-14T10:14:08.840 に答える