Как изменить текстовое представление последовательно, как только данные вставлены в базу данных Android - PullRequest
0 голосов
/ 24 сентября 2019

Мое требование:

У меня есть трейлер № 1 и название фильма.Теперь, как только я вставил данные в таблицу, мне нужно изменить текст на Трейлер № 2, это будет до Трейлера № 5. Поскольку нужно вставить только 5 данных.Также я проверю, существует ли уже трейлер № 1 в таблице.Если не существует, я вставляю в таблицу, но если существует, я изменяю текст как трейлер номер 2. Это точный сценарий, он должен работать.

Но в моем случае, когда я вставил трейлер номер 1, он скачетна Трейлер № 5 вместо того, чтобы не отображать Трейлер № 2.

После нажатия кнопки

boolean isFirstTrailerNumberExist = myDb.isExist("Trailer Number 1");
            boolean isSecondTrailerNumberExist = myDb.isExist("Trailer Number 2");
            boolean isThirdTrailerNumberExist = myDb.isExist("Trailer Number 3");
            boolean isFourthTrailerNumberExist = myDb.isExist("Trailer Number 4");
            boolean isFifthTrailerNumberExist = myDb.isExist("Trailer Number 5");

 if(isFirstTrailerNumberExist) {
                Toast.makeText(this, "Trailer Number 1 already Exist", Toast.LENGTH_SHORT)
                        .show();

            } else {
                boolean isInserted = myDb.insertData(trailerNumberName.getText().toString(),
                        trailerNumberCount.getText().toString());
                if(isInserted){

                    Toast.makeText(TrailerNumberActivity.this,"Inserted successfully",Toast.LENGTH_SHORT)
                            .show();
                    trailerNumberName.setText("Trailer Number 2");
                }
                else{
                    Toast.makeText(TrailerNumberActivity.this,"Insertion failed",Toast.LENGTH_SHORT)
                            .show();
                }
            }

if(isSecondTrailerNumberExist){
                Toast.makeText(this,"Trailer Number 2 already Exist",Toast.LENGTH_SHORT)
                        .show();
            }
            else {
                boolean isInserted = myDb.insertData(trailerNumberName.getText().toString(),
                        trailerNumberCount.getText().toString());
                if(isInserted){

                    Toast.makeText(TrailerNumberActivity.this,"Inserted successfully",Toast.LENGTH_SHORT)
                            .show();
                    trailerNumberName.setText("Trailer Number 3");
                }
                else{
                    Toast.makeText(TrailerNumberActivity.this,"Insertion failed",Toast.LENGTH_SHORT)
                            .show();
                }
            }
//the same repeats for third, fourth and fifth trailer too to check in db

if(isThirdTrailerNumberExist){
                Toast.makeText(this,"Trailer Number 3 already Exist",Toast.LENGTH_SHORT)
                        .show();
            }
            else {
                boolean isInserted = myDb.insertData(trailerNumberName.getText().toString(),
                        trailerNumberCount.getText().toString());
                if(isInserted){

                    Toast.makeText(TrailerNumberActivity.this,"Inserted successfully",Toast.LENGTH_SHORT)
                            .show();
                    trailerNumberName.setText("Trailer Number 4");
                }
                else{
                    Toast.makeText(TrailerNumberActivity.this,"Insertion failed",Toast.LENGTH_SHORT)
                            .show();
                }
            }

            if(isFourthTrailerNumberExist){
                Toast.makeText(this,"Trailer Number 4 already Exist",Toast.LENGTH_SHORT)
                        .show();
            }
            else {
                boolean isInserted = myDb.insertData(trailerNumberName.getText().toString(),
                        trailerNumberCount.getText().toString());
                if(isInserted){

                    Toast.makeText(TrailerNumberActivity.this,"Inserted successfully",Toast.LENGTH_SHORT)
                            .show();
                    trailerNumberName.setText("Trailer Number 5");
                }
                else{
                    Toast.makeText(TrailerNumberActivity.this,"Insertion failed",Toast.LENGTH_SHORT)
                            .show();
                }
            }

            if(isFifthTrailerNumberExist){
                Toast.makeText(this,"Trailer Number 5 already Exist",Toast.LENGTH_SHORT)
                        .show();
            }
            else {
                boolean isInserted = myDb.insertData(trailerNumberName.getText().toString(),
                        trailerNumberCount.getText().toString());
                if(isInserted){

                    Toast.makeText(TrailerNumberActivity.this,"Inserted successfully",Toast.LENGTH_SHORT)
                            .show();
                    trailerNumberName.setText("Trailer Number 1");
                }
                else{
                    Toast.makeText(TrailerNumberActivity.this,"Insertion failed",Toast.LENGTH_SHORT)
                            .show();
                }
            }

Это то, как я повторял отображение до Трейлера 5, но проблема заключается в том, что после вставки Трейлера 1 он скачетк трейлеру 5.

1 Ответ

1 голос
/ 24 сентября 2019

конечно, он будет прыгать на трейлере № 5, потому что когда вы нажмете кнопку изначально, все --- TrailerNumberExist вернет false, поэтому последовательно он будет устанавливать текст в «Трейлер № 2», «Трейлер № 3» и так далее доон останавливается на «Трейлере № 5»

сделать это так

 if(!isFirstTrailerNumberExist) {
    // insert and show your entry here
    insertDataAndUpdateText("Trailer Number 2");
}else if(!isSecondTrailerNumberExist){
    // insert and show your entry here
    insertDataAndUpdateText("Trailer Number 3");
}else if(!isThirdTrailerNumberExist){
    // insert and show your entry here
    insertDataAndUpdateText("Trailer Number 4");
} 

и т. д. Используйте один метод, чтобы сделать ваш код оптимальным

, теперь он будетвведите последовательно по нажатию кнопки и показать вывод

...