【问题标题】:How to display a spinner when a radio button clicked单击单选按钮时如何显示微调器
【发布时间】:2016-12-26 12:51:54
【问题描述】:

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

    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;

【问题讨论】:

  • 使用属性 visibility='gone' 或 'invisible' 的微调器设计您的布局文件,当您单击单选按钮时使其可见

标签: java android android-spinner visibility android-radiobutton


【解决方案1】:

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

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

    }
};

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

【讨论】:

  • 这似乎是一个很好的实现。可能想参考 View.GONE 以及 View.INVISIBLE 如何对 OP 更好,或者让他们决定。
【解决方案2】:

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

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

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

【讨论】:

  • 请先阅读问题再回答这是可见性问题,请检查它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2014-11-11
  • 2012-10-01
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多