【问题标题】:How to enable / disable click in spinner android?如何在微调器 android 中启用/禁用单击?
【发布时间】:2018-12-27 15:26:09
【问题描述】:

基于条件,我想“显示微调器的下拉视图或显示默认值但不显示下拉菜单”。我在微调器对象中使用了 setClickable(false),但它不起作用。如何实现?

【问题讨论】:

  • 你试过setEnabled(false); ?
  • setenabled(false) 有效,但它使该字段变灰。我不希望它进入禁用状态。
  • 您可以使用状态选择器将禁用的颜色更改为正常

标签: android android-layout spinner


【解决方案1】:

试试:

((Spinner) spinner).getSelectedView().setEnabled(false);
spinner.setEnabled(false);

【讨论】:

  • setenabled(false) 有效,但它使该字段变灰。我不希望这种情况发生。
【解决方案2】:

在设置适配器之前禁用或启用它。

spinner.setEnabled(false);   
spinner.setClickable(false);  
spinner.setAdapter(typeAdapter);

【讨论】:

    【解决方案3】:

    要禁用单击单个项目微调器而不会使该字段变灰:

    为微调器项目创建 xml 布局spinner_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <TextView  
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:textColor="#000000"         
    />
    

    在代码中:

      ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, R.layout.spinner_item, SpinnerList); // replace SpinnerList with your own list you want to show
            Spinner spin = (Spinner) findViewById(R.id.android_spinner); // replace android_spinner with the id of yours
            if (SpinnerList.size() < 2) { // again change SpinnerList
                spin.setBackgroundColor(Color.TRANSPARENT); // if you don't want to show the dropdown arrow
                spin.setEnabled(false); // it will disable click in spinner
            }
            spin.setAdapter(adapter);
    

    【讨论】:

      【解决方案4】:

      通过在下面写下这一行来启用/禁用微调器。

      spinner.onSelectedItemListener

      spinner.setEnabled(false); // 以编程方式

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 2014-10-17
        • 1970-01-01
        相关资源
        最近更新 更多