Mam suwak, który można podciągnąć, a następnie pokazuje mapę. Mogę przesuwać suwak w górę iw dół, aby ukryć lub pokazać mapę. Gdy mapa jest z przodu, mogę obsługiwać zdarzenia dotykowe na tej mapie. Za każdym razem, gdy się dotykam, a AsyncTask
jest uruchamiany, pobiera niektóre dane i Toast
wyświetla je. Chociaż uruchamiam zadanie po zdarzeniu dotykowym, toast nie jest wyświetlany, dopóki nie zamknę suwaka. Gdy suwak jest zamknięty, a mapa nie jest już wyświetlana, Toast
pojawia się.
Jakieś pomysły?
Cóż, zacznij zadanie
EDYTOWAĆ:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
i onPostExecute
zrobić 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.
Toast
, sprawdź to: stackoverflow.com/a/18280318/1891118Odpowiedzi:
Aby wyświetlić Toast w aplikacji, spróbuj:
Inny przykład:
Możemy zdefiniować dwie stałe dla czasu trwania:
Dostosuj swój toast
źródło
baseadapter
Wykorzystano to przy rozszerzaniu aktywnościlub jeśli korzystasz z aktywności lub
mainactivity
źródło
Składnia
Wartość parametru
kontekst
tekst
Trwanie
Przykład 1
Przykład 2
źródło
Toast w Androidzie
lub
(LENGTH_SHORT i LENGTH_LONG działają jak flagi boolowskie - co oznacza, że nie można wysłać timera toastowego na milisekundy, ale musisz użyć jednej z tych 2 opcji)
źródło
Możesz dostosować swój tost:
Lub ogólny sposób:
źródło
Próbowałem kilku tostów, a dla tych, których toast daje im błąd, spróbuj
źródło
Można to zrobić na dwa sposoby.
Albo użyj wbudowanego komunikatu Toast
lub utwórz niestandardowy, podając niestandardowy plik układu
źródło
Natknąłem się na odpowiedzi tutaj i przyciągnął mnie fakt, że wydaje się, że ktoś się tu bawi, wierząc, że wymagany jest kontekst Aktywności. Nie o to chodzi. Konieczne jest jednak wysłanie Toast z głównego wydarzenia lub wątku interfejsu użytkownika. Tak więc uzyskanie tego poza kontekstem działania jest nieco trudne. Oto przykład, który działałby w ramach usługi systemowej lub dowolnej potencjalnej klasy, która ostatecznie dziedziczy
Context
.Pamiętaj, że nie potrzebujemy dostępu do instancji,
Activity
aby to działało. Przestań sugerować, że tak jest! GdybyActivity
były wymagane, sygnatura metody nie wymagałaby wywołaniaContext
.źródło
zamiast używać „app.getBaseContext ()”.
Możesz spróbować użyć „ getApplicationContext () ” lub „ getContext () ”.
Jeśli Twój kod jest aktywny, powinieneś użyć „tego” z „Activty.this”.
Jeśli twój kod jest fragmentowy, powinieneś wybrać „getActivity ()”
źródło
Jeśli to fragment,
źródło
Aby wyświetlić Toast, użyj następującego kodu:
Toast toast = new Toast(getApplicationContext());
źródło
źródło
Prosta droga
toast("Your Message")
LUB
toast(R.string.some_message)
Po prostu dodaj dwie metody do swojego
BaseActivity
. Lub utwórz nowy,BaseActivity
jeśli jeszcze go nie używasz.i rozszerz wszystkie swoje działania o
BaseActivity
.źródło
Najprostszy sposób! (Aby wyświetlić w głównym działaniu, zastąp pierwszy argument innym działaniem)
źródło
To działało dla mnie:
źródło
Musisz przeczytać: Android Toast Przykład
Składnia
Możesz użyć getApplicationContext () lub getActivity () lub MainActivity.this (jeśli Nazwa działania to MainActivity)
lub
źródło
Sposób rozpoczęcia
źródło
Pokaż Toast from Service
Możesz także umieścić
showToast
metodę w klasie Application i wyświetlać tosty z dowolnego miejsca.źródło
Jeśli chcesz napisać prosty toast w swojej działalności:
Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
1.Pokazywanie TextView w Toast: ---
TextView tv = new TextView(this);
tv.setText("Hello!");
tv.setTextSize(30);
tv.setTextColor(Color.RED);
tv.setBackgroundColor(Color.YELLOW);
2.Pokazywanie obrazu jako toast: -
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.blonde);
Toast t = new Toast(this);
t.setView(iv);
t.setDuration(Toast.LENGTH_LONG);
t.show();
3. wyświetlanie układu jako Toast: -
LayoutInflater li = getLayoutInflater();
View view = li.inflate(R.layout.my_toast_layout,null,false);
Toast t = new Toast(this);
t.setView(view);
t.setDuration(Toast.LENGTH_LONG);
t.show();
** Jeśli chcesz napisać toast w swoim Async, to:
private Activity activity;
private android.content.Context context;
this.activity = activity;
this.context = context;
Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();
źródło
Oto kolejny:
Gdzie
Toast
jest:Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
I
strings.xml
:<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>
źródło
Fragmenty wewnętrzne (onCreateView)
Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();
Klasy wewnętrzne (onCreate)
Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();
źródło