Ich habe einen Schieberegler, der hochgezogen werden kann, und dann zeigt er eine Karte. Ich kann den Schieberegler nach oben und unten bewegen, um die Karte auszublenden oder anzuzeigen. Wenn sich die Karte vorne befindet, kann ich Berührungsereignisse auf dieser Karte verarbeiten. Jedes Mal, wenn ich a berühre, AsyncTask
wird a ausgelöst, es lädt einige Daten herunter und erstellt ein Toast
, das die Daten anzeigt. Obwohl ich die Aufgabe bei einem Berührungsereignis starte, wird kein Toast angezeigt, bis ich den Schieberegler schließe. Wenn der Schieberegler geschlossen ist und die Karte nicht mehr angezeigt wird, wird die Toast
angezeigt.
Irgendwelche Ideen?
Nun starten Sie die Aufgabe
BEARBEITEN:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
und onPostExecute
einen Toast machen
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
In neu TestTask(this)
ist dies ein Verweis auf MapOverlay
und nicht auf MapActivity
, also war dies das Problem.
Toast
, überprüfen Sie es: stackoverflow.com/a/18280318/1891118Antworten:
Versuchen Sie Folgendes, um Toast in Ihrer Anwendung anzuzeigen :
Ein anderes Beispiel:
Wir können zwei Konstanten für die Dauer definieren:
Anpassen Ihres Toasts
quelle
Erweitern der Aktivität mit
baseadapter
verwendet diesoder wenn Sie Aktivität verwenden oder
mainactivity
quelle
Syntax
Parameterwert
Kontext
Text
Dauer
Beispiel 1
Beispiel.2
quelle
Toasten in Android
oder
(LENGTH_SHORT und LENGTH_LONG fungieren als boolesche Flags. Dies bedeutet, dass Sie keinen Toast-Timer in Millisekunden senden können, aber eine dieser beiden Optionen verwenden müssen.)
quelle
Sie können Ihren tost anpassen:
Oder allgemeiner Weg:
quelle
Ich habe mehrere Toasts ausprobiert und für diejenigen, denen ihr Toast Fehler gibt, versuchen Sie es
quelle
Es gibt zwei Möglichkeiten, dies zu tun.
Verwenden Sie entweder die eingebaute Toast-Nachricht
oder erstellen Sie eine benutzerdefinierte, indem Sie eine benutzerdefinierte Layoutdatei bereitstellen
quelle
Ich bin hier auf die Antworten gestoßen und war von der Tatsache angezogen, dass anscheinend jemand herumstochert und glaubt, dass ein Aktivitätskontext erforderlich ist. Das ist nicht der Fall. Es ist jedoch erforderlich, dass ein Toast vom Hauptereignis oder UI-Thread veröffentlicht wird. Es ist also etwas schwierig, dies außerhalb eines Aktivitätskontexts zum Laufen zu bringen. Hier ist ein Beispiel, das innerhalb eines Systemdienstes oder einer potenziellen Klasse funktioniert, von der letztendlich geerbt wird
Context
.Beachten Sie, dass wir keinen Zugriff auf eine Instanz von benötigen,
Activity
damit dies funktioniert. Bitte hören Sie auf, dies vorzuschlagen! Wenn diesActivity
erforderlich wäre, würde die Methodensignatur kein a erfordernContext
.quelle
anstatt "app.getBaseContext ()" zu verwenden.
Sie können versuchen, " getApplicationContext () " oder " getContext () zu verwenden. " zu verwenden.
Wenn Ihr Code aktiv ist, sollten Sie "this" von "Activty.this" verwenden.
Wenn Ihr Code fragmentiert ist, sollten Sie "getActivity ()" wählen.
quelle
Wenn es ein Fragment ist,
quelle
Verwenden Sie zum Anzeigen von Toast den folgenden Code:
Toast toast = new Toast(getApplicationContext());
quelle
quelle
Einfacher Weg
toast("Your Message")
ODER
toast(R.string.some_message)
Fügen Sie einfach zwei Methoden hinzu
BaseActivity
. Oder erstellenBaseActivity
Sie eine neue, wenn Sie diese noch nicht verwenden.und erweitern Sie alle Ihre Aktivitäten um
BaseActivity
.quelle
Einfachster Weg! (Um in Ihrer Hauptaktivität angezeigt zu werden, ersetzen Sie das erste Argument für eine andere Aktivität.)
quelle
Das hat bei mir funktioniert:
quelle
Muss lesen: Android Toast Beispiel
Syntax
Sie können getApplicationContext () oder getActivity () oder MainActivity.this verwenden (wenn der Aktivitätsname MainActivity ist).
oder
quelle
Die ersten Schritte
quelle
Toast vom Service anzeigen
Sie können die
showToast
Methode auch in Ihre Anwendungsklasse einfügen und von überall aus Toast anzeigen.quelle
Wenn Sie in Ihrer Aktivität einen einfachen Toast schreiben möchten:
Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
1. Textansicht in Toast anzeigen: ---
TextView tv = new TextView(this);
tv.setText("Hello!");
tv.setTextSize(30);
tv.setTextColor(Color.RED);
tv.setBackgroundColor(Color.YELLOW);
2. Bild als Toast anzeigen: -
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. Layout als Toast anzeigen: -
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();
** Wenn Sie den Toast in Ihren Async schreiben möchten, dann:
private Activity activity;
private android.content.Context context;
this.activity = activity;
this.context = context;
Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();
quelle
Hier ist ein anderes:
Wo
Toast
ist:Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
&
strings.xml
:<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>
quelle
Innerhalb von Fragmenten (onCreateView)
Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();
Innerhalb von Klassen (onCreate)
Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();
quelle