Как реализовать последовательность диалогов ввода текста? - PullRequest
1 голос
/ 06 октября 2011

Я создаю приложение для Android и хотел бы иметь функцию, которая создает два диалоговых окна ввода текста один за другим, а затем выполняет операцию на основе значений.Поскольку все в Android выполняется асинхронно, я предложил следующий подход:

private void doOperation() {
    final EditText input = new EditText(this);
    showInput("Title", "Enter param1:", input, new DialogInterface.OnClickListener() {  
        public void onClick(DialogInterface dialog, int whichButton) {
            doOperation2(input.getText().toString());
        }
    });
}

private void doOperation2(String param1) {
    if(/* Some condition on param1. */)
        return;
    final EditText input = new EditText(this);
    showInput("Title", "Enter param2:", input, new DialogInterface.OnClickListener() {  
        public void onClick(DialogInterface dialog, int whichButton) {
            doOperation3(param1, input.getText().toString());
        }
    });
}

private void doOperation3(String param1, String param2) {
    actuallyDoOperation();
}

private void showInput(String title, String message, final EditText input, DialogInterface.OnClickListener positiveActionListener) {
    AlertDialog alert = new AlertDialog.Builder(this).create();
    alert.setTitle(title);
    alert.setMessage(message);
    input.setInputType(InputType.TYPE_CLASS_TEXT);
    alert.setView(input);
    alert.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.ok), positiveActionListener);
    alert.setButton(AlertDialog.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
        }
    });

    alert.show();
}

Мне это кажется немного грязным, есть ли лучший / приятный / чистый / более правильный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...