问:你好
设置标题,消息和按钮文本时,我们使用了context.getString(R.string。“ locationstuffhere”)
我省略了上下文部分,并且代码运行良好。我还记得我们通常只使用getString(R.string。“ stuff”),所以我只是好奇上下文部分在做什么
谢谢
答:不确定我是否正在关注。在过去的几个月中,Android Studio可能会发生一些变化,但是我正在努力尽可能地跟踪您的回答。这是在Android Studio 1.5中生成的代码。没有context.getString()自动生成:
公共 对话框 onCreateDialog (Bundle savedInstanceState ) {
上下文context = getActivity (); AlertDialog 。生成器builder = new AlertDialog 。生成器(上下文)。的setTitle (ř 。串。error_title )。setMessage (ř 。串。ERROR_MESSAGE )。setPositiveButton (R 。
字符串。error_alert_button_text , null );
AlertDialog对话框=构建器。创建(); 返回对话框; }
因此,我没有遵循您的答案的地方是...当我可以依靠res> values> string.xml(R.string.xxxx)包含任何字符串时,为什么还要关心从什么对象调用getString()我想?(假设它是有效的)
另外,为什么我希望将Context作为调用getString的对象,以便从res / strings.xml生成字符串以传递到另一个对象的另一个方法中?
在应用程序开发中是否会出现上下文将来自完全不同的具有自己资源的应用程序进行的活动?
似乎直接访问R.string.whatever_value属性,就像当前在Android Studio 1.5中那样,是正确的选择,因为我只是想将字符串插入方法调用中。而且,我的大脑无法理解为什么要在直接访问R成员时包装Context.getString(),而直接访问恰好产生了我想要的。