У меня есть код
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.v(text, "" + dataSnapshot);
if (!dataSnapshot.exists()) {
Toast toast = Toast.makeText(getApplicationContext(),
"QRCode неверен! Попробуйте ещё раз", Toast.LENGTH_SHORT);
toast.show();
AlertDialog.Builder builder = new AlertDialog.Builder(DecoderActivity.this);
builder.setTitle("Информация")
.setMessage("QR Code уже считан или неверен")
.setCancelable(false)
.setNegativeButton("ОК",
(dialog, id) -> dialog.cancel());
AlertDialog alert = builder.create();
alert.show();
}
else {
long qrCoinsAmount = dataSnapshot.getValue(Long.class);
DatabaseReference coinsAmountRef = rootRef.child("users").child(getUid()).child("coinsAmount");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
long coinsAmount = dataSnapshot.getValue(Long.class);
coinsAmountRef.getRef().setValue(coinsAmount + qrCoinsAmount);
coinsUidRef.removeValue();
AlertDialog.Builder builder = new AlertDialog.Builder(DecoderActivity.this);
builder.setTitle("Информация")
.setMessage("QR Code успешно считан")
.setCancelable(false)
.setNegativeButton("ОК",
(dialog, id) -> dialog.cancel());
AlertDialog alert = builder.create();
alert.show();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
coinsAmountRef.addListenerForSingleValueEvent(valueEventListener);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
coinsUidRef.addListenerForSingleValueEvent(valueEventListener);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Intent intent = new Intent(this,MenuActivity.class);
startActivity(intent);
}
По задумке он должен показывать AlertDialog ждать 10 секунд и кидать на другую активити, но в реале как я понимаю получается, что AlertDialog еще не открылся а поток уже заснул. Как воплотить задумку?
Можно реализовать с использованием Handler
. По прошествии установленного времени задержки, окно диалоговое окно закроется и откроется ваше активити.
final AlertDialog alert = builder.create();
alert.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (alert.isShowing()){
alert.dismiss();
Intent intent = new Intent(this, MenuActivity.class);
startActivity(intent);
}
}
}, 99999); // время задержки
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Начал изучать программирование и начал с языка Java и столкнулся с трудностью, поэтому прошу помощи
Ребят, очень нужноКак сделать так, чтобы при нажатии на кнопку всплывала форма с с полями, куда пользователь мог бы внести данные и тем самым...
Здраствуйте, у меня появилась проблема - Uncaught TypeError: Cannot read property 'style' of null