getResources(R.string.hello_world)和R.string.hello_world之间的区别

时间:2014-03-30 14:23:52

标签: android resources

使用之间的区别是:

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

似乎在两方面都有效。

感谢您的帮助!

2 个答案:

答案 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