使用之间的区别是:
getResources().getText(R.string.hello_world)
和
R.string.hello_world
第二种方式,应该返回一个int对象。我刚尝试过:
Toast.makeText(getApplicationContext(), getResources().getText(R.string.hello_world), Toast.LENGTH_LONG).show();
和
Toast.makeText(getApplicationContext(), R.string.hello_world, Toast.LENGTH_LONG).show();
似乎在两方面都有效。
感谢您的帮助!
答案 0 :(得分:6)
Toast.makeText(getApplicationContext(), R.string.hello_world, Toast.LENGTH_LONG)
呼叫
Toast.makeText(Context, int, int)
它是"翻译"像
public static Toast makeText(Context context, int resId, int duration)
throws Resources.NotFoundException {
return makeText(context, context.getResources().getText(resId), duration);
}
总而言之,它等于您的第一个makeText
答案 1 :(得分:2)
getResources().getText(R.string.hello_world)
:将返回String ..
和
R.string.hello_world
:将返回整数(对象的引用位置)。
并且makeToast()方法可用于这两个参数。
如果您传递了字符串,则视为处理消息。
如果您传递任何整数,它会将其视为String的引用位置,控件将找到该String。如果没有提供整数的字符串,那么它将抛出异常。 (ResourceNotFoundException
)