【发布时间】:2017-12-10 14:11:55
【问题描述】:
在片段中读取字符串资源时,哪种方法通常更好/更安全?
这里我直接读到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);
}
}
这两种方法有什么权衡/缺点吗?
我问的原因是因为有时我在使用第一种方法时遇到了空指针问题,而使用第二种方法解决了这些问题;所以我不确定使用第一个是否有问题。
【问题讨论】:
标签: android string android-fragments android-resources android-context