Frage

Mein Code lautet:

public static void ToastMemoryShort (Context context) {
    CharSequence text = getString(R.string.toast_memoryshort); //error here
    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
    return;
    }

aber ich erhalte in Eclipse "Kann keinen statischen Verweis auf die nicht statische Methode getString (int) vom Typ Context erstellen".Ich versuche, mich auf die Lokalisierung meiner App vorzubereiten (alle fest codierten Zeichenfolgen in Ressourcen zu integrieren), also wo ich habe:

getString(R.string.toast_memoryshort)

Ich hatte zuvor eine fest codierte Zeichenfolge, die in Ordnung war.

Ich bin mir nicht sicher, was hier los ist (Java Noob).Kann mich bitte jemand aufklären?

Vielen Dank

Baz

War es hilfreich?

Lösung

Verwenden Sie stattdessen einfach Folgendes:

makeText (Kontextkontext, int resId, int duration) Erstellen Sie einen Standard Toast, der nur eine Textansicht mit dem Text einer Ressource enthält.

Von http://developer.android.com/reference/android/widget/Toast.html

Andere Tipps

Wechseln Sie zu

 public static void ToastMemoryShort (Context context) {

        Toast.makeText(context, context.getString(R.string.toast_memoryshort), Toast.LENGTH_LONG).show();
        return;
        }

Sie könnten Ihren Toast wie folgt allgemeiner gestalten:

public void toast(String msg){
    Context context = getApplicationContext();
    CharSequence text = msg;
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
}

Rufen Sie dann einfach an, wenn Sie Folgendes benötigen:

toast( "My message hardcoded" );

oder unter Bezugnahme auf strings.xml wie folgt:

toast( this.getString(R.string.toast_memoryshort) );

Sie sollten ändern

CharSequence text = getString(R.string.toast_memoryshort); //error here

für:

CharSequence text = context.getString(R.string.toast_memoryshort);

Die getString-Funktion ist in Kontext # getString (int)

Verwenden Sie den folgenden Code, um die gewünschte Ausgabe zu erhalten:

Toast.makeText(getApplicationContext(),getString(R.string.exit_survey_toast),Toast.LENGTH_LONG).show();

Ersetzen Sie exit_survey_toast durch Ihren Zeichenfolgenwert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top