我是Android的新手,我自己通过网络上的资源学习SDK。
我现在遇到了一个情况。我正在尝试以下代码:
类型1:getResources().getString(android.R.string.cancel);
类型2:
Resources.getSystem().getString(android.R.string.cancel);
类型3:
getString(android.R.string.cancel);
以上所有方法都返回相同的值。那么这些方法是什么,它们的用例是什么。什么时候使用哪种方法的好方法。请帮帮我。
答案 0 :(得分:10)
不同之处不仅在于你得到了什么,而在于你在哪里可以使用它们。
第一个和第三个使用“上下文”。无形。因此,除非将上下文或资源作为静态变量或作为参数传递到范围内,否则通常(在静态成员或活动成员之外)不能直接使用它们。但第二个
Resources.getSystem().getString(android.R.string.cancel)
您可以在应用程序中随处使用,即使在静态常量声明中也是如此!但仅限系统资源
答案 1 :(得分:4)
所有3都返回相同的值,但Resources.getSystem()引用系统资源并可能导致崩溃 if used incorrectly.
建议的用法是“getString(android.R.string.cancel);”
它也在Android开发者网站的WalkieTalkieActivity.java code中使用。
答案 2 :(得分:1)
这三种方法都是一样的。
以下是根方法:getApplicationContext().getResource().getString("")
,这是快捷方法:getString("")
在处理应用程序上下文时使用快捷方法。
几乎在所有情况下,我们都使用getString()
来获取String文件中定义的字符串。