Подтвердить что ты не робот

Android Toast Message не показывает

У меня есть кнопка. Когда пользователь нажимает кнопку, есть какое-то условие, это условие не удовлетворяет, тогда нужно отображать Toast, но не показывать Toast Message...

Код: Отредактировано

 Button addMe = (Button)findViewById(R.id.addMe);
    addMe.setOnClickListener(new OnClickListener() {
           public void onClick(View v) {
               if(selectedReason.equals("--Select--")){
                   Log.i("TAG","-----");
                   Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();
               }else if(selectedType.equals("--Select--")){
                   Toast.makeText(getParent(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
               }else{
                   if(selectedType.equals("Value")){
                       if(spc_amount.getText().toString().equals("")){
                           Log.i("TAG","-----");
                           Toast.makeText(getBaseContext(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
                       }else{
                           if(Double.parseDouble(spc_amount.getText().toString()) > invoiceValue){
                               Toast.makeText(getBaseContext(), "Amonut can not be grater than invoice", Toast.LENGTH_SHORT).show();
                           }else{
                               Discount dis = new Discount();
                               dis.setCriteriaName(selectedReason);
                               dis.setDiscountValue(Double.parseDouble(spc_amount.getText().toString()));
                               spDisList.put(1,dis);
                               tl.removeAllViews();
                            loadTableLayout();
                           }

                       }
                   }
               }
           }
    });

Я пробовал контекст с getParent(), getApplicationContext(), SpecialDiscountActivity.this и getBaseContext(), но не работал.

Это сообщение Toast, подпадающее под Tab Activity Group

4b9b3361

Ответ 1

Мне понравилось это

Toast.makeText(SalesActivityGroup.group.getParent(), "Amount can not be 
                                grater than invoice", Toast.LENGTH_SHORT).show();

Ответ 2

Try:

Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();

Это .show(), который вы опускаете повсюду, что заставляет все ваши тосты устанавливать, но никогда не выполнять.

Ответ 3

Я думаю, что вам не хватает .show(); Это должно быть...

Toast.makeText(getBaseContext(), "Amount can not be grater than invoice",
                                                     Toast.LENGTH_SHORT).show();

Ответ 4

Пожалуйста, извините меня, если это не решение вашей проблемы, но я случайно отключил параметр "Показать уведомление" приложения один раз. Возможно, идея входит в настройки вашего устройства/приложение/менеджер и проверяет этот параметр.

Ответ 6

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

Я включил настройку уведомлений, и она начала появляться. Я искал и наткнулся на ссылку ниже, которая говорит о том же:

https://code.google.com/p/android/issues/detail?id=35013

Ответ 7

Там может быть две возможности:

1 - Вы не .show(); в самом конце Toast.makeText(getActivity(), "Hi", Toast.LENGTH_SHORT).

2 - Может быть ситуация, когда вы не проходите правильный контекст

Для этого попробуйте передать getActivity().getApplicationContext();

который в моем случае решил проблему.

Удачи :)

Ответ 8

Просто перезагрузите ваше устройство! Это решило мою проблему.

Ответ 9

Вы можете использовать контекст Activity

как

Toast.makeText(ActivityName.this,"Reason can not be blank", Toast.LENGTH_SHORT).show()

, если это не работает, поместите log.i(); в каждое ваше условие, может быть, он перейдет к последнему, и вы не получите Toast.

Ответ 10

Если Toast не отображается, это означает, что либо вы не вызвали метод show() либо вы не в потоке пользовательского интерфейса

В идеале вы должны создать вспомогательный метод для отображения Toast, как это в потоке пользовательского интерфейса.

 /** Execute Toast on UI thread **/
 private fun showToast(message: String) {

        Handler().post {
            // Code here will run in UI thread
            Toast.makeText(
                this, 
                message,
                Toast.LENGTH_LONG
            ).show()
        }
    }

Ответ 11

Try:

Toast.makeText(v.getContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();

Ответ 12

Complimer проверяет весь код, и если есть критическая ошибка, он игнорирует даже строки перед секцией ошибок, и поэтому вы не увидите "Toast". Просто прокомментируйте строки, в которых происходит ошибка (вы можете найти строки ошибок в Logcat) Теперь вы можете увидеть "Toast" и можете проанализировать вашу проблему.