以编程方式设置Spinner VISIBLE并启用

时间:2019-02-08 18:31:09

标签: android spinner

我有一个带有动态字段行为的动态Android表单。
示例:如果用户填充字段A,则显示字段B并隐藏字段C。

为此,我正在使用方法view.setVisibility(View.VISIBLE)view.setEnabled(boolean)。此方法适用于RadioGroupEditText,但不适用于Spinner组件。
微调器设置为可见,但始终处于禁用状态。
.setEnable(true)方法不会产生任何影响。

我需要显示微调器已启用。
如果微调框可见,则setEnabled()起作用。但是,如果微调框是不可见的,那么这两个命令将无法正常工作。

spinner.setVisibility(View.VISIBLE)
spinner.setEnabled(Boolean.TRUE)

[]的

1 个答案:

答案 0 :(得分:2)

请提供更多详细信息。以下代码显示了如何显示/隐藏或启用/禁用微调器。

boolean visibility = true;
    boolean enabled = true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout linearLayout = new LinearLayout(this);
        final Spinner spinner = new Spinner(this);
        String[] animals = {"cats","dogs","lines","rats"};
        spinner.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,animals));
        linearLayout.addView(spinner);
        Button visiblity = new Button(this);
        visiblity.setText("VisibilityButton");
        linearLayout.addView(visiblity);
        setContentView(linearLayout);
        visiblity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(visibility){
                    spinner.setVisibility(View.INVISIBLE);
                    visibility = false;
                }
                else{
                    spinner.setVisibility(View.VISIBLE);
                    visibility = true;
                }
            }
        });
        Button enabledButton = new Button(this);
        enabledButton.setText("EnabledButton");
        linearLayout.addView(enabledButton);
        enabledButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(enabled){
                    spinner.setEnabled(false);
                    enabled = false;
                }
                else{
                    spinner.setEnabled(true);
                    enabled = true;
                }
            }
        });
    }