Как создать и проверить окно ввода пользовательского ввода в Android Studio - PullRequest
0 голосов
/ 08 мая 2018

Я делаю счетчик. При загрузке или onCreat я хочу показать диалоговое окно ввода для пользователя, чтобы ввести целочисленное значение. 1st ... Если пользователь не вводит никакое символьное значение в поле. Тогда пользователь не может нажать кнопку ОК. 2nd .. Если пользователь не вводит в него никакого значения. Тогда он не сможет нажать кнопку Ok или Cancle.

Пожалуйста, помогите .... !! Заранее спасибо

Вот код подсказки

AlertDialog.Builder ab = new AlertDialog.Builder(TasbihWorkActivity.this);
        ab.setTitle("Enter Any String");
        final EditText editText = new EditText(TasbihWorkActivity.this);
        ab.setView(editText);

        ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                count_num.setText(editText.getText().toString());
            }
        });

        ab.setNegativeButton("Cencel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                count_num.setText("No text entered!!!");
            }
        });

        AlertDialog a = ab.create();
        a.show();

1 Ответ

0 голосов
/ 08 мая 2018

Вы должны использовать Наблюдатель текста для вашего editText. Если нет ввода, отключите эти две кнопки, используя setClickable(false);. Если значение символа не вводится, отключите кнопку OK

    AlertDialog.Builder ab = new AlertDialog.Builder(TasbihWorkActivity.this);
            ab.setTitle("Enter Any String");
            final EditText editText = new EditText(TasbihWorkActivity.this);

    editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

        // TODO Auto-generated method stub
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        // TODO Auto-generated method stub
    }

    @Override
    public void afterTextChanged(Editable s) {

        // implement your logic here
    }
});
            ab.setView(editText);

            ab.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    count_num.setText(editText.getText().toString());
                }
            });

            ab.setNegativeButton("Cencel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    count_num.setText("No text entered!!!");
                }
            });

            AlertDialog a = ab.create();
            a.show();

Редактировать

Чтобы предотвратить исчезновение диалогового окна при нажатии на экран, добавьте следующий код

ab.setCancelable(false)

...