1

ラジオボタンをクリックしても解決策が見つからない場合のみ、スピナーを画面に表示したいとします。ここに私の現在のコードです。ラジオボタンがクリックされたときにスピナーを表示する方法

RadioGroup radio_grp=(RadioGroup) rootView.findViewById(R.id.radio_grp); 
    RadioButton rb1 = (RadioButton) rootView.findViewById(R.id.radioButton1); 
    RadioButton rb2 = (RadioButton) rootView.findViewById(R.id.radioButton2); 



    View.OnClickListener button1Listener = new View.OnClickListener() { 
     public void onClick(View v) { 
      // Toast message etc. 
     } 
    }; 

    View.OnClickListener button2Listener = new View.OnClickListener() { 
     public void onClick(View v) { 
      // I want to show a spinner if they click the second radio button 

     } 
    }; 

    rb1.setOnClickListener(button1Listener); 
    rb2.setOnClickListener(button2Listener); 

    return rootView; 
+0

あなたのレイアウトファイルをプロパティvisibility = 'gone'または 'invisible'でデザインします。ラジオボタンをクリックすると、 – arjunkn

答えて

2

まずようにスピナーを初期化する第二ラジオボタンクリックで((Spinner) findViewById(R.id.mySpinner)).performClick();を入れて:もちろん、

Spinner mSpinner = (Spinner) rootView.findViewById(R.id.mSpinner); 

その前に、どこかのレイアウトにスピナーを追加し、だ、それを設定しますandroid:visibility="invisible"最初に選択したラジオボタンが1の場合は、visibleに設定します。あなたはそれが画面に表示されていないのです一度それがどんなスペースを占有したくない場合は、

View.OnClickListener button2Listener = new View.OnClickListener() { 
    public void onClick(View v) { 
     // I want to show a spinner if they click the second radio button 
     if (v.getId() == R.id.radioButton1) mSpinner.setVisibility(View.INVISIBLE); 
     if (v.getId() == R.id.radioButton2) mSpinner.setVisibility(View.VISIBLE); 

    } 
}; 

代わりView.INVISIBLEView.GONEを使用します。その後、リスナーを追加します。差異についてはhereを参照してください。

+0

良い実装。 View.GONEを参照したい場合や、View.INVISIBLEがOPにとってどのように優れているのか、あるいはそれらを決定させる方法があります。 – Subby

+1

@Subbyは次のように編集しました:D – Vucko

-1

View.OnClickListener button2Listener = new View.OnClickListener() { 
      public void onClick(View v) { 

    ((Spinner) findViewById(R.id.mySpinner)).performClick(); 
      } 
     }; 
+0

が表示されます。最初に質問を読んでから、これが可視性の問題であることを確認してください。 –

関連する問題