在 Fragment 中读取字符串资源时,哪种方法通常更好/更安全?
这里我直接读取了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);
}
}
或者通过先设置上下文字段然后从中读取资源,以这种方式更好:
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);
}
}
这两种方法有什么优缺点?
我问的原因是因为有时我会遇到第一种方法的空指针问题,但使用第二种方法可以解决;所以我不确定使用第一个是否有问题。
最佳答案
第二种方法更复杂,并且与第一种方法相比没有任何值(value)。使用第一种方法。
关于android - 这是从 fragment 中获取字符串资源的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951119/