2012-01-13 26 views
0

私は私のホームページにスピナーを持っています。スピナーから値を選択して、次のページを送信するといくつかのテキストボックスがロードされます。Android - Spinnerから選択した値に応じて別のレイアウトをロード

ただし、スピナーから選択した値に応じて異なるレイアウトが表示されるようにするにはどうすればよいですか。

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); 
    } 

すべてのヘルプは非常に次のようになります。私は文、最初の選択のためしかし、この唯一の作品は、他の強制近い...、アプリケーションが予期せず停止しました(うちエラーにアプリを起こした場合、現在使用しようとしていますappeciated

おかげ

+0

あなたはエラーを投稿してもらえますか? –

+0

がエラーになりますか? Logcatのエラーは何ですか? –

+0

こんにちは、私は次のエラーメッセージが表示されます。 - アプリケーションが予期せず停止しました。強制終了します。ありがとう –

答えて

0

あなたはこの試みることができるので、私は、エラーがあなたが二回contentViewを設定しようとしていることと思いますのでだろうと想像:あなたのクラスのトップに
追加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 
+0

私は上記を真実としましたが、これは動作していないようです。スピナーからオプションの1つを選択して次のページを読み込もうとするたびに、同じエラーメッセージが表示されます。私が逃したかもしれない何かがありますか? –

+0

よくある問題私はちょうどそれを再読み込みしました。intは文字列として宣言されていますので、変更してみてください(私は*で回答を編集しました) – ProfSmiles

+0

私はすでに編集していました。追加)からelse if(layoutToLoad == 2)) –

関連する問題