поэтому я создаю это приложение для Android, которое читает файлы. Одна функция, которую я хочу, - позволить пользователю вводить номер страницы, а затем приложение открывать этот конкретный номер страницы. Поскольку я новичок в Android, я просмотрел некоторую информацию в Интернете и нашел некоторую информацию, касающуюся Edittext и AlertDialog. В моем коде, если пользователь открывает меню и нажимает кнопку «Перейти», то открывается AlertDialog с просьбой ввести номер страницы. Я конвертирую эту строку в int, а затем приложение ДОЛЖНО перейти на эту страницу. Однако по какой-то странной причине он переходит на указанную страницу, только если пользователь снова нажимает GO TO из меню. Я не понимаю, почему пользователь должен снова нажать GO TO, чтобы выполнить указанное действие.
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Go to page number...");
alert.setMessage("Enter page number:");
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
try {
num = Integer.parseInt(input.getText().toString());
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
// Do something with value!
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
c = -1;
Для этого кода я установил блок try / catch для запуска функции. В основном, когда вы нажимаете GO TO из меню, переменная c становится равной -1, тогда у меня есть оператор if, который выполняет переход к N-й странице, только если c = -1.
Я просто не понимаю, почему c не установлен в -1 сразу после открытия AlertDialog и ввода пользователем номера. Почему он должен быть установлен в -1 после того, как пользователь нажимает GO TO еще раз. Спасибо!