在片段中读取字符串资源时,哪种方法通常更好/更安全?
我在这里读到getResources().getString()
直接地:
public class SomeFragment extends Fragment {
public static SomeFragment newInstance() {
Bundle args = new Bundle();
SomeFragment fragment = new SomeFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String someString = getResources().getString(R.string.my_string_id);
}
}
或者最好这样做,首先设置一个 Context 字段,然后从中读取资源:
public class SomeFragment extends Fragment {
private Context context;
public static SomeFragment newInstance() {
Bundle args = new Bundle();
SomeFragment fragment = new SomeFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.context = context;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String someString = context.getResources().getString(R.string.my_string_id);
}
}
这些方法有什么权衡/缺点吗?
我之所以问这个问题,是因为有时我在使用第一种方法时遇到了空指针问题,而使用第二种方法可以解决这些问题;所以我不确定使用第一个是否有问题。
第二种方法更复杂,并且比第一种方法没有任何价值。使用第一种方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)