【问题标题】:How show Button only if Spinner is selected仅在选择 Spinner 时如何显示按钮
【发布时间】:2016-08-04 13:35:49
【问题描述】:

我有一个按钮:

<Button
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:text="text"
                android:id="@+id/test"
                android:onClick="test"
                android:visibility="gone"/>

我有 3 个 Spinner,我希望当所有 3 个 Spinner 都选择了一个值时,Visible 中的按钮可见性会发生变化。

如果选择了 3 个值,是否有不同的方法可以在不检查任何时候选择微调器的情况下执行此操作? 这种类型的操作是否有“观察者”?

编辑

这是我此刻在微调器中调用onItemSelected 的函数:

public void checkSpinner(){
        Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
        assert spinner1 != null;
        int position1= spinner1.getSelectedItemPosition();

        Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
        assert spinner2 != null;
        int position2=spinner2.getSelectedItemPosition();

        Spinner spinner3 = (Spinner) findViewById(R.id.spinner3);
        assert spinner3 != null;

        int position3=spinner3.getSelectedItemPosition();
        Button button = (Button) findViewById(R.id.button);
        if((position1>0) && (position2>0)&&(position3>0))
        {

            button .setVisibility(View.VISIBLE);
        }else{
            button .setVisibility(View.GONE);
        }
    }

【问题讨论】:

  • 我做了一个功能,每次选择一个微调器时都会启动,我问是否有其他方法,或者像“一只手表”这样的方法来检查是否选择了值
  • 你能用代码更新你的问题吗?
  • 该方法似乎没问题,除了一些性能问题。你什么时候打电话给checkSpinner()
  • 我在onItemSelected(AdapterView&lt;?&gt; parent, View view, int position, long id) { checkSpinner(); }调用这个方法在所有3个微调器中
  • 我猜你面临同样的问题。检查那里的任何解决方案是否有效 - stackoverflow.com/questions/4923310/…

标签: android android-layout


【解决方案1】:

从所有 3 个微调器中获取所选项目的值,然后将这些值与您想要的值进行比较,如果它们相等,则显示按钮。

String text1=spinner1.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

String text2=spinner2.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

String text3=spinner3.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

if(text1.equals("your desired value") && text2.equals("your desired value") && text3.equals("your desired value"))
{
  button.setVisibility(View.VISIBLE);
}

【讨论】:

  • 谢谢,但我必须在每次选择一个微调器时启动它,对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
相关资源
最近更新 更多