13

私のコードは次のとおりです。

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

しかし、Eclipseで「Context型から非静的メソッドgetString(int)への静的参照を作成できません」というメッセージが表示されます。アプリをローカライズする準備をしようとしています(ハードコードされたすべての文字列をリソースに取り込む)ので、次のようになります。

getString(R.string.toast_memoryshort)

以前はハードコードされた文字列がありましたが、これで問題ありませんでした。

ここで何が起こっているのかわかりません(Javanoob)。誰かが私を教えてくれますか?

どうもありがとう

バズ

4

5 に答える 5

28

への変更

 public static void ToastMemoryShort (Context context) {

        Toast.makeText(context, context.getString(R.string.toast_memoryshort), Toast.LENGTH_LONG).show();
        return;
        }
于 2011-09-07T09:46:55.357 に答える
5

代わりにこれを使用してください:

makeText(Context context, int resId, int duration) リソースからのテキストを含むテキスト ビューだけを含む標準のトーストを作成します。

http://developer.android.com/reference/android/widget/Toast.htmlから

于 2011-09-07T09:48:15.330 に答える
0

あなたは変わるべきです

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

為に:

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

getString関数はContext#getString(int)で実装されています

于 2016-06-10T14:45:23.207 に答える
0

以下のコードを使用して、目的の出力を取得します。

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

exit_survey_toastを文字列値に置き換えます。

于 2019-07-11T09:56:00.980 に答える