单击单选按钮时如何显示微调器

How to display a spinner when a radio button clicked

我只想在单击单选按钮时在屏幕上显示微调器,但找不到解决方案。这是我当前的代码。

    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;

((Spinner) findViewById(R.id.mySpinner)).performClick(); 放在第二个单选按钮中单击

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

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

首先像这样初始化微调器:

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

当然,在此之前,在布局中的某处添加一个微调器,如果第一个选择的单选按钮为 1,则将其设置为 android:visibility="invisible",否则将其设置为 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);

    }
};

如果您不希望它在不在屏幕上时占据任何 space,请使用 View.GONE 而不是 View.INVISIBLE。区别参考here