У меня есть пользовательский AlertDialog с EditText для PIN-кода. OnClick положительной кнопки PIN-код в файле редактирования проверяется с помощью SharedPreferences. Если он соответствует, я хочу закрыть диалоговое окно, иначе он должен оставаться открытым. В тот момент, когда PIN-код правильный, диалог закрывается и появляется снова, и я не хочу, чтобы он появлялся. Спасибо за вашу помощь заранее.Не удается отменить оповещение. Он продолжает всплывать
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
if ((System.currentTimeMillis() - mainScreenActivity.lastLoggedIn)/1000 >= 120) {
//startActivity(pinVarificationActivity);
//Toast.makeText(getApplicationContext(),"Session has timed out, please enter your PIN",Toast.LENGTH_LONG).show();
LayoutInflater inflaterPinVerificationDialog = this.getLayoutInflater();
final View inflatorPinVerificationDialog = inflaterPinVerificationDialog.inflate(R.layout.dialog_pin_verification, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom));
builder.setTitle("Session timed out. Please enter PIN");
builder.setView(inflatorPinVerificationDialog);
pinFromDialog = (EditText) inflatorPinVerificationDialog.findViewById(R.id.etDialogPin);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
String dialogPinValue = pinFromDialog.getText().toString();
String sharedPrefPinVal = loginData.getString("pin", "not found");
if (sharedPrefPinVal.equals(dialogPinValue)) {
Toast.makeText(getApplicationContext(), "login successful",
Toast.LENGTH_SHORT).show();
mainScreenActivity.lastLoggedIn = System.currentTimeMillis();
alertDialogPinVerification.dismiss();
} else {
Toast.makeText(getApplicationContext(),
"Incorrect pin - Please try again",
Toast.LENGTH_LONG).show();
}
}
});
builder.setNegativeButton("Forgot PIN", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alertDialogPinVerification = builder.create();
alertDialogPinVerification.show();
} else {
mainScreenActivity.lastLoggedIn = System.currentTimeMillis();
}
return super.dispatchTouchEvent(ev);
}
Привет, Джей, спасибо за ваш ответ, это сработало для меня сейчас. В настоящий момент он отменяет диалог с сообщением тоста как неправильный вывод. Можете ли вы предложить, что делать, если я не хочу отменять диалог, когда PIN-код неправильный или как открыть диалог для ввода PIN-кода – BRDroid