如何在安卓中启用/禁用Spinner的点击功能?

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

你尝试过设置 setEnabled(false) 吗? - Mitch Dart
setenabled(false)可以达到效果,但它会使字段变灰。我不想让它处于禁用状态。 - quest
您可以使用状态选择器将禁用颜色更改为正常颜色。 - Mitch Dart
4个回答

5

尝试:

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

2
setenabled(false) 可以起作用,但它会使字段变灰。我不希望发生这种情况。 - quest

3

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

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

1

通过编写以下代码,可以启用/禁用旋转器。

spinner.onSelectedItemListener

spinner.setEnabled(false); // 程序控制


0

禁用单项选择器的点击而不使其变灰:

为选择器项创建 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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接