Jak wyświetlić Toast w Androidzie?
Mam suwak, który można podciągnąć, a potem pokazuje mapę. Mogę przesuwać suwak w górę iw dół, aby ukryć lub pokazać mapę. Kiedy mapa jest z przodu, mogę obsługiwać wydarzenia dotykowe na tej mapie. Za każdym razem, gdy dotykam, a AsyncTask
jest uruchamiany, pobiera dane i tworzy Toast
, który wyświetla dane. Chociaż uruchamiam zadanie na touch event nie jest wyświetlany toast, nie dopóki nie zamknę suwaka. Gdy suwak jest zamknięty i mapa nie jest już wyświetlana, pojawia się Toast
.
Any pomysły?
Dobrze rozpocznij Zadanie
EDIT:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
And in onPostExecute
make a toast
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
W nowym TestTask(this)
jest to odniesienie do MapOverlay
, a nie do MapActivity
, więc to był problem.
15 answers
Aby wyświetlić Toast w aplikacji, spróbuj tego:
Toast.makeText(getActivity(), (String)data.result,
Toast.LENGTH_LONG).show();
Inny przykład:
Toast.makeText(getActivity(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
Możemy zdefiniować dwie stałe dla czasu trwania:
Int LENGTH_LONG Pokaż widok lub powiadomienie tekstowe przez długi okres czasu.
Int LENGTH_SHORT Pokaż widok lub powiadomienie tekstowe przez krótki okres czasu.
Dostosowywanie tostów
LayoutInflater myInflater = LayoutInflater.from(this);
View view = myInflater.inflate(R.layout.your_custom_layout, null);
Toast mytoast = new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-10 09:08:22
Rozszerzenie aktywności za pomocą baseadapter
użyłem tego
Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
Lub jeśli używasz aktywności lub mainactivity
Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-21 04:01:35
Składnia
Toast.makeText(context, text, duration);
Wartość Parametru
kontekst
getApplicationContext()
- zwraca kontekst dla wszystkich działań uruchomionych w aplikacji.
getBaseContext()
- Jeśli chcesz uzyskać dostęp do kontekstu z innego kontekstu w aplikacji, możesz uzyskać dostęp.
getContext()
- zwraca tylko bieżącą bieżącą aktywność w widoku kontekstowym.
tekst
text
- Return "STRING", jeśli nie string można użyć type Obsada
(string)num // type caste
czas trwania
Toast.LENGTH_SHORT
- Toast delay 2000 ms predefiniowane
Toast.LENGTH_LONG
- opóźnienie toastu 3500 ms predefiniowane
milisecond
- Toast delay zdefiniowane przez użytkownika milisekundy (np. 4000)
przykład.1
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
przykład.2
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-31 06:44:04
Możesz dostosować swój tost:
LayoutInflater mInflater=LayoutInflater.from(this);
View view=mInflater.inflate(R.layout.your_layout_file,null);
Toast toast=new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
Lub ogólnie:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-22 13:50:39
Toast w Androidzie
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();
Lub
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();
( LENGTH_SHORT i LENGTH_LONG działają jako flagi logiczne - co oznacza, że nie możesz wysłać timera toast do milisekund, ale musisz użyć jednej z tych 2 opcji )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-22 09:18:53
Można to zrobić na dwa sposoby.
Albo użyj wbudowanej wiadomości Toast
//Toast shown for short period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show();
//Toast shown for long period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show();
Lub zrobić niestandardowy, dostarczając niestandardowy plik układu
Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-19 16:44:45
Próbowałem kilka toastów i dla tych, których ich toast daje im błąd spróbować
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
Natknąłem się na odpowiedzi tutaj i przyciągnął mnie fakt, że wydaje się, że ktoś grzebał wokół, wierząc, że kontekst aktywności jest wymagany. Tak nie jest. Jest to jednak wymóg, aby Toast został opublikowany z głównego wydarzenia lub wątku interfejsu użytkownika. Tak więc doprowadzenie tego do pracy poza kontekstem aktywności jest trochę trudne. Oto przykład, który działałby wewnątrz usługi systemowej lub dowolnej klasy potencjalnej, która ostatecznie dziedziczy z Context
.
public class MyService extends AccessibilityService {
public void postToastMessage(final String message) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
});
}
}
Zauważ, że nie potrzebujemy dostępu do instancji Activity
, aby to zadziałało. Proszę przestań sugerować, że tak jest! Jeśli Activity
są wymagane, podpis metody nie wymagałby Context
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-10 23:07:01
Jeśli jest fragmentem,
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-16 08:44:47
Do wyświetlenia tosta użyj następującego kodu:
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-20 10:38:33
Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position
toast.setDuration(10000);//you can even use milliseconds to display toast
toast.show();**//showing the toast is important**
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-17 17:27:13
Toast.makeText(app.getBaseContext(),String)data.result,Toast.LENGTH_SHORT).show();
Zamiast " app.getBaseContext()".
Możesz spróbować użyć " getApplicationContext () " lub " getContext () ".
Jeśli Twój kod jest w aktywności, powinieneś użyć "this" Z " Activty.to".
Jeśli twój kod jest fragmentem, powinieneś wybrać "getActivity ()"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-04 09:34:00
Najprostszy sposób! (Aby wyświetlić w głównej aktywności, zamień pierwszy Argument na inną aktywność)
Button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-18 02:10:04
To mi pomogło:
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
Pokaż Toast z serwisu
public class ServiceA extends Service {
//....
public void showToast(final String message) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
}
});
}
//....
}
Możesz również umieścić metodę showToast
w swojej klasie aplikacji i pokazać toast z dowolnego miejsca.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 16:15:17