在Toast中使用字符串资源

时间:2011-09-07 09:45:03

标签: java android toast charsequence

我的代码是:

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)

我以前有一个硬编码的字符串,很好。

我不确定这里发生了什么(Java noob)。有人可以开导我吗?

非常感谢

巴兹

5 个答案:

答案 0 :(得分:20)

更改为

 public static void ToastMemoryShort (Context context) {

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

答案 1 :(得分:4)

请改用:

  

makeText(Context context,int resId,int duration)制作标准   toast只包含带有资源文本的文本视图。

来自http://developer.android.com/reference/android/widget/Toast.html

答案 2 :(得分:2)

你可以像这样使你的吐司更通用:

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();
}

然后在需要时拨打电话:

toast( "My message hardcoded" );

或通过引用strings.xml这样:

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

答案 3 :(得分:0)

你应该改变

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

有:

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

getString功能在Context#getString(int)

中实施

答案 4 :(得分:0)

使用以下代码获取所需的输出:

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

exit_survey_toast 替换为您的字符串值。