我可以用三种不同的方式在进度对话框中显示资源。
pDialog.setMessage(getActivity().getApplicationContext().getResources().getString(R.string.please_wait));
pDialog.setMessage(getContext().getResources().getString(R.string.please_wait));
pDialog.setMessage(getResources().getString(R.string.please_wait));
哪一个是正确的方法?为什么?
最佳答案
没有真正的方法。您只需要Context
:
-
getResources()
当你在Activity
时class (或MyActivity.this.getResources()
当您在 Activity 类中从内部类调用时) -
getActivity().getResources()
(甚至getContext().getResources()
)当您处于Fragment
时类 -
context.getResources()
当你经过Context
时通过参数 -
view.getContext().getResources()
当你得到Context
时来自您的View
以下两个具有“等效 Context
”,因为您位于 Fragment
就像我可以通过你的问题标签假设的那样:
pDialog.setMessage(getContext().getResources().getString(R.string.please_wait));
pDialog.setMessage(getResources().getString(R.string.please_wait));
哪里
pDialog.setMessage(getActivity().getApplicationContext().getResources().getString(R.string.please_wait));
你得到Context
条目申请。
这里有一些引用:
Difference between getContext() , getApplicationContext() , getBaseContext() and “this”
关于android - 在 fragment 中使用进度对话框显示资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607979/