android - 这是从 fragment 中获取字符串资源的正确方法吗?

标签 android string android-fragments android-resources android-context

在 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/

相关文章:

java - 跟踪位置以动画 fragment 之间的过渡

android - 如何录制(和处理?)可从 Android 流式传输的视频

Android:如何创建这样的自定义编辑文本框?

Android:关闭应用程序时保存实例状态

Python 将字符串转换为列表(无 .split())

Java 比较方法。 Student.compareTo 方法应该返回

java - fragment 布局崩溃的问题,从来没有工作的时刻

Android 测试项目崩溃,错误 "Test run failed: Instrumentation run failed due to ' 进程崩溃 .'"

javascript - 使用 Javascript 对齐基于另一个数组的数组

java - 从 Android Activity 类调用接口(interface)方法