Java 如何从R.string.xxx设置类属性默认值
我有一个单例片段类。我想为属性Java 如何从R.string.xxx设置类属性默认值,java,android,Java,Android,我有一个单例片段类。我想为属性text设置一个默认值,该文本来自R.string.testText class TestFragment { private String text; public static TestFragment newInstance() { TestFragment fragment = new TestFragment(); return fragment; } } 因此,如果我使用: private Str
text
设置一个默认值,该文本来自R.string.testText
class TestFragment {
private String text;
public static TestFragment newInstance() {
TestFragment fragment = new TestFragment();
return fragment;
}
}
因此,如果我使用:
private String text = getResources().getString(R.string.testText)
我将得到一个错误:
java.lang.IllegalStateException: Fragment not attached to Activity
如何做到这一点?谢谢
出于某种原因,我需要在某些部分更改此文本
,其中大多数部分都有默认值。因此,我不想在onCreateView
中配置此值
TestFragment f1 = TestFragment.newInstance();
f1.setText = "default"
有些不是默认值
TestFragment f2 = TestFragment.newInstance();
f2.setText = "222"
所以我想问的是,是否可以从R文件中设置一个默认值
编辑
我认为我在这里理解单例模式是错误的。我在这里使用的只是静态方法。您可以在新的newInstance()方法中添加参数上下文。 例如:
public static TestFragment newInstance(Context context) {
if (fragment = null) {
fragment = new TestFragment();
text = context.getResources().getString(R.string.voice_search_label);
}
return fragment;
}
您应该在该片段的“onCreateView”或“onActivityCreated”中设置文本。因为在此之前,片段没有附加到任何活动。创建一个从YourFragment返回实例的单例模式,其中YourFragment不是单例类。当然,YorFragment扩展了活动。@ThrashBean您是对的。我想我误解了辛格尔顿。这里我的问题只是一个静态的方法。非常感谢。