Android 如何正确地与片段中的资源交互
我的问题更多地涉及到要遵循的良好实践,我制定的代码正在运行,但我不确定我是否以正确的方式执行以下操作 这是在Android 如何正确地与片段中的资源交互,android,android-resources,Android,Android Resources,我的问题更多地涉及到要遵循的良好实践,我制定的代码正在运行,但我不确定我是否以正确的方式执行以下操作 这是在FragmentStatePagerAdapter中使用的简单片段的当前版本,这意味着在使用应用程序时,该片段可以被调用数百次 基本上,我声明了一个类变量来处理资源: public class RateFragment extends Fragment { private DatabaseHandler db; private Resources resources;
FragmentStatePagerAdapter
中使用的简单片段的当前版本,这意味着在使用应用程序时,该片段可以被调用数百次
基本上,我声明了一个类变量来处理资源
:
public class RateFragment extends Fragment {
private DatabaseHandler db;
private Resources resources;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
// Getting the maximum number of days
db = new DatabaseHandler(this.getActivity());
resources = this.getResources();
在类的其余部分中,我只是通过执行以下操作获得所需的资源:resources.getString(R.string.hello)
这是个坏主意吗?为什么?我是否必须到处切换到getResources()
还有一个小问题:getResources()
和this.getResources()
之间有区别吗
谢谢 在扩展fragement的类中调用getResources()或this.getResources()是相同的,一个是隐式的,一个是显式的。首先,您不应该在片段中的onCreate()中使用getActivity。原因:活动不是不可避免地被创造出来的。这会导致应用程序崩溃。您可能有一个上下文变量,您只能在适当的时候、在父活动的生命周期内分配,而不是每次需要时分配;)谢谢你的建议,我意识到我在好几个地方都这么做了,你有没有任何例子来看看如何解决这个问题?