Программно установлен Spinner VISIBLE и включен - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть динамическая форма Android с поведением динамических полей.
Пример: если пользователь заполняет поле A, показывает поле B и скрывает поле C.

Я использую методы view.setVisibility(View.VISIBLE) и view.setEnabled(boolean) для этой цели.Этот подход работает для RadioGroup и EditText, но не работает для Spinner компонента.
Вращатель установлен на видимый, но всегда отключен.
Метод .setEnable (true) не вызывает никакого эффекта.

Мне нужно показать включенный счетчик.
Если счетчик виден, setEnabled () работает.Но если спиннер был невидим, эти две команды вместе не работают.

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

[] s

1 Ответ

0 голосов
/ 08 февраля 2019

Пожалуйста, предоставьте более подробную информацию.Следующий код показывает, как вы можете показать / скрыть или включить / отключить счетчик.

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