Ich habe einen Schieberegler, der nach oben gezogen werden kann und dann eine Karte anzeigt. Ich kann den Schieberegler nach oben und unten bewegen, um die Karte ein- oder auszublenden. Wenn die Karte eingeblendet ist, kann ich Berührungsereignisse auf dieser Karte verarbeiten. Jedes Mal, wenn ich die Karte berühre, wird ein AsyncTask
gestartet, der einige Daten herunterlädt und einen Toast
erstellt, der die Daten anzeigt. Obwohl ich die Aufgabe beim Berührungsereignis starte, wird kein Toast angezeigt, nicht bevor ich den Schieberegler schließe. Wenn der Schieberegler geschlossen wird und die Karte nicht mehr angezeigt wird, erscheint der Toast.
Hat jemand eine Idee?
Starten Sie die Aufgabe
EDIT:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
und in onPostExecute
einen Toast aussprechen
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
In new TestTask(this)
ist dies ein Verweis auf MapOverlay
und nicht auf MapActivity
, daher war dies das Problem.
Um Toast in Ihrer Anwendung anzuzeigen, versuchen Sie Folgendes:
Toast.makeText(getActivity(), (String)data.result,
Toast.LENGTH_LONG).show();
Ein anderes Beispiel:
Toast.makeText(getActivity(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
Wir können zwei Konstanten für die Dauer definieren:
int LENGTH_LONG Die Ansicht oder Textbenachrichtigung für einen langen Zeitraum anzeigen der Zeit.
int LENGTH_SHORT Zeigt die Ansicht oder Textbenachrichtigung für einen kurzen Zeitraum Zeitspanne.
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();
Toast in Android
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();
oder
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();
( LENGTH_SHORT und LENGTH_LONG fungieren als boolesche Flags - was bedeutet, dass man den Toast-Timer nicht auf Milisekunden umstellen kann, sondern eine der beiden Optionen verwenden muss )
Sie können Ihren Toast individuell gestalten:
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();
Oder Allgemeiner Weg:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();