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

设计您的布局文件与旋转器属性能见度='走了'或'隐形',当您单击单选按钮使其可见 – arjunkn

回答

2

首先初始化喜欢微调:

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

当然,在此之前,在布局中添加微调框的地方,并设置它的如果第一个选中的单选按钮是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.GONE代替View.INVISIBLE。请参阅here的差异。

+0

这似乎是一个良好的实施。可能要引用View.GONE,以及View.INVISIBLE如何更适合OP,或让他们决定。 – Subby

+1

@Subby刚刚编辑:D – Vucko

-1

((Spinner) findViewById(R.id.mySpinner)).performClick();在第二单选按钮,然后单击

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

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

请先阅读问题之前回答这是可见性问题,请检查它 –

相关问题