У меня разные кнопки, которые запускают разные тосты;Все они запускаются с помощью onClick или onLongClick. Я инициализировал все тостовые сообщения в моем методе OnCreate. Я решил создать один глобальный тост, чтобы при каждом отображении тоста я говорил: «1001 *, а затем toast = exampleToast;
toast.show;
», чтобы избежать постановки тостов в очередь и облегчения отмены любого тоста, отображаемого перед отображением нового тоста. один.
Моя проблема в том, что один и тот же тост должен появляться столько раз, сколько я нажимаю на его кнопку, он отображается только один раз.
private statice Toast toast
- мой глобальный тост;Я попытался сделать его статичным, но это не решило проблему.
private static Toast toast; // copies different toast messages; easily referenced and cancelled
private Toast backToast, deletedToast, setETimesToast, setRTimesToast, setLapsToast, savedToast,
finishToast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Toast longClickToDeleteToast = Toast.makeText(MainActivity.this, R.string.long_press, Toast.LENGTH_SHORT);
final Toast longClickToEditToast = Toast.makeText(MainActivity.this,"Long click to edit Title", Toast.LENGTH_SHORT);
final Toast underDevToast = Toast.makeText(MainActivity.this, R.string.under_development, Toast.LENGTH_SHORT);
finishToast = Toast.makeText(MainActivity.this, R.string.finished, Toast.LENGTH_SHORT);
savedToast = Toast.makeText(MainActivity.this, R.string.saved , Toast.LENGTH_SHORT);
setETimesToast = Toast.makeText(MainActivity.this, R.string.set_etime , Toast.LENGTH_SHORT);
setRTimesToast = Toast.makeText(MainActivity.this, R.string.set_rtime, Toast.LENGTH_SHORT);
setLapsToast = Toast.makeText(MainActivity.this, R.string.set_laps , Toast.LENGTH_SHORT);
backToast = Toast.makeText(MainActivity.this, "Tap again to exit", Toast.LENGTH_SHORT);
deletedToast = Toast.makeText(MainActivity.this, R.string.deleted, Toast.LENGTH_SHORT);
В следующем коде, например, могут быть показаны три разных тоста. Однако, если сработал один тост, он больше не будет отображаться, пока я не активирую другой тост, это сводит меня с ума!
public void onClick(View view){
if(toast != null) {
toast.cancel();
toast = null;
}
if(checkFields()){
return;
}
private boolean checkFields() {
final boolean b = true;
toast = null;
if (minutes == 0 && seconds == 0) {
toast = setETimesToast;
toast.show();
return b;
}
if (restMin == 0 && restSec == 0) {
toast = setRTimesToast;
toast.show();
return b;
}
if(laps == 0){
toast = setLapsToast;
toast.show();
return b;
}
return false;
}