Почему продолжает появляться неправильное всплывающее сообщение?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему продолжает появляться неправильное всплывающее сообщение?

Сообщение Anonymous »

У меня есть класс BookRoomActivity:

Код: Выделить всё

public class BookRoomActivity extends AppCompatActivity {
String staffPromotionCode;
EditText etRoomName,etprice,etDate,etCapacity,etPromotion;
Button btnBook;
FirebaseFirestore db;

final boolean[]promotionCodeMatched = {false};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_room);

// Retrieve promotion code set by staff from intent
Intent z = getIntent();
staffPromotionCode = z.getStringExtra("Promotion");

btnBook = findViewById(R.id.btnBook);
etRoomName = findViewById(R.id.etRoomName);
etprice = findViewById(R.id.etPrice);
etDate = findViewById(R.id.etDate);
etCapacity = findViewById(R.id.etCapacity);
etPromotion = findViewById(R.id.etPromotion);

db = FirebaseFirestore.getInstance();

Intent i = getIntent();
Room room = (Room) i.getSerializableExtra("updatedRoom");

if (room != null){
etRoomName.setText(room.getRoomName());
etPromotion.setText(room.getRoomName());
etCapacity.setText(String.valueOf(room.getCapacity()));
etDate.setText(String.valueOf(room.getDate()));
etprice.setText(String.valueOf(room.getPrice()));
} else {
Toast.makeText(BookRoomActivity.this, "Error: Room details not found", Toast.LENGTH_SHORT).show();
}
btnBook.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Retrieve details from EditText fields
String roomName = etRoomName.getText().toString().trim();
double price = Double.parseDouble(etprice.getText().toString().trim());
int date = Integer.parseInt(etDate.getText().toString());
int capacity = Integer.parseInt(etCapacity.getText().toString().trim());
String promotion = etPromotion.getText().toString().trim();

final boolean[] promotionCodeMatched = {false}; // Declare and initialize promotionCodeMatched

// Retrieve promotion code set by staff from intent
Intent z = getIntent();
staffPromotionCode = z.getStringExtra("Promotion");

// Retrieve user-entered promotion code
String enteredPromotionCode = promotion.trim().toLowerCase();

// Check if the entered promotion code matches the staff-set promotion code
if (enteredPromotionCode.equals(staffPromotionCode)) {
promotionCodeMatched[0] = true;
} else {
// Fetch the room details from Firestore
db.collection("rooms")
.whereEqualTo("roomName", roomName)
.get()
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task  task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Room room = document.toObject(Room.class);
String firestorePromotionCode = room.getPromotion().trim().toLowerCase();
if (enteredPromotionCode.equals(firestorePromotionCode)) {
promotionCodeMatched[0] = true;
break;
}
}

if (!promotionCodeMatched[0]) {
Toast.makeText(BookRoomActivity.this, "Incorrect promotion code applied!", Toast.LENGTH_LONG).show();
} else {
// Promotion code matched, proceed with booking
// Create Room object
Room newRoom = new Room(0, date, capacity, roomName, promotion, price);

// Store Room object in Firestore
CollectionReference roomsCollection = db.collection("rooms");
roomsCollection.add(newRoom)
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(DocumentReference documentReference) {
// Room booking successful
Toast.makeText(BookRoomActivity.this, "Room booked successfully!", Toast.LENGTH_LONG).show();
finish(); // Finish the activity and go back to the previous activity
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Room booking failed
Toast.makeText(BookRoomActivity.this, "Failed to book room: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
} else {
// Handle query failure
Toast.makeText(BookRoomActivity.this, "Failed to retrieve promotion code: " + task.getException(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
});;}}"
Я столкнулся с проблемой при реализации функции промокода. Моя цель состоит в том, чтобы, когда пользователь вводит промо-код, который соответствует коду, хранящемуся в моей базе данных Firebase, приложение должно вернуться к предыдущему действию и отобразить всплывающее сообщение «Комната успешно забронирована». Однако даже когда я ввожу правильный промо-код, приложение постоянно отображает сообщение «Применен неправильный промо-код!». вместо этого тост. Не могли бы вы помочь мне понять, почему это происходит, и предложить решение?
Изображение

Итак, я попытался проверить свои поля Firestore, а также поискать в Google и попытаться использовать аналогичные решения, но, похоже, ничего не помогло, и это было лучшее, что я смог найти.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -appearing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»