Я делаю приложение для Android, в котором я хочу воспользоваться преимуществами некоторого ранее написанного Java-кода, который полностью написан для самостоятельной работы с собственным методом main.
Когда я вызываю метод mainиз метода onCreate моего MainActivity.java он все еще вызывается нормально.Но вместо того, чтобы взаимодействовать с консолью, я хочу, чтобы метод main () взаимодействовал с EditText, кнопками и представлениями Android. MainActivity и код Java находятся в отдельных классах .
Что я хочу, так это в основном выполнение программы, которая будет остановлена до тех пор, пока я не введу свою запись в EditText и не возобновлю работу, когда я нажму кнопкуи затем возьмите строку, которую я ввел в EditText.Как и в BufferdReader, когда мы вызываем метод reader.readLine (), выполнение останавливается до нажатия клавиши enter, а затем принимает все, что было введено перед нажатием enter.
Существует три вызова функции один за другим promptString()
:
case TdApi.AuthorizationStateWaitPhoneNumber.CONSTRUCTOR: {
String phoneNumber = promptString("Please enter phone number: ");
client.send(new TdApi.SetAuthenticationPhoneNumber(phoneNumber, false, false), new AuthorizationRequestHandler());
break;
}
case TdApi.AuthorizationStateWaitCode.CONSTRUCTOR: {
String code = promptString("Please enter authentication code: ");
client.send(new TdApi.CheckAuthenticationCode(code, "", ""), new AuthorizationRequestHandler());
break;
}
case TdApi.AuthorizationStateWaitPassword.CONSTRUCTOR: {
String password = promptString("Please enter password: ");
client.send(new TdApi.CheckAuthenticationPassword(password), new AuthorizationRequestHandler());
break;
}
Каждый вызов возвращает строку, которая затем отправляется для вызовов API.Если используется читатель с буферизацией, код прекращает выполнение до тех пор, пока кто-то не введет строку и не нажмет ввод, и правильное значение (в соответствии с пользователем) будет введено, а затем возвращено promptString()
и затем отправлено вызовам API.
Я хочу повторить эту функциональность буферизированного типа для чтения в Android, где при вызове promptString()
программа ждет, пока пользователь не введет текст редактирования, а когда нажата кнопка, затем promptString()
возвращает строку и затем выполняется дальнейшее выполнение..
В настоящее время происходит то, что выполнение продолжается, не давая пользователю возможности ввести текст редактирования, и, следовательно, неправильные (пустая строка) значения отправляются вызовам API и, следовательно, вызывают ошибки.
promptString()
Код, отвечающий за ввод и возврат введенной строки ( без изменений ):
private static String promptString(String prompt) {
System.out.print(prompt);
currentPrompt = prompt;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = "";
try {
str = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
currentPrompt = null;
return str;
}
Я знаю, что я спрашиваю, довольно нетрадиционно и глупо, ноМне это нужно, потому что я сталкиваюсь с некоторыми сроками, и у меня нет времени, чтобы полностью понятьПИ звонит.
Если вопрос неясен для вас, пожалуйста, прокомментируйте, какую часть вы хотите проработать.
Я открыт для решений, которые не совсем мои, но я выполню работу, котораяЯ ищу и помогаю подождать, пока программа не закончит ввод строки в тексте редактирования.
Я использую телеграмму api ' java пример.
Пожалуйста, помогите.