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

Создайте свой файл макета с помощью spinner с видимостью свойства = «ушел» или «невидим», и когда вы нажмете переключатель, сделайте его видимым – arjunkn

ответ

2

Сначала инициализировать счетчик, как:

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.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

, пожалуйста, прочитайте вопрос первым, прежде чем ответить, это проблема видимости, пожалуйста, проверьте его. –