为什么 getResources().getString() return 为空?
Why getResources().getString() return null?
每当我打电话时总是得到 NullPointerException
:
getApplicationContext().getResources().getStringArray(R.array.days);
我在 Activity
中从 DialogFragment
调用了它。我也尝试使用 getActivity()
,但这对我也不起作用。有人知道这个问题吗?
试试这个:
如果你把它写在片段中:
String[] days = getActivity().getResources().getStringArray(R.array.days);
如果你把这个写在 activity:
String[] days = this.getResources().getStringArray(R.array.days);
这只是一个假设,但大多数情况下,如果有人遇到此错误,他们在放置代码的位置或调用代码的时间上犯了错误。例如,如果您在 onCreate() 之前调用它:
public class YourActivity extends Activity {
private String foo = "foo";
private String[] yourArray = getResources().getStringArray(R.array.yourArray);
public void onCreate(Bundle savedInstanceState){
...
}
}
这将导致 NullPointerException。相反,你必须这样称呼它:
public class YourActivity extends Activity {
private String foo = "foo";
private String[] yourArray;
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.yourLayout);
yourArray = getResources().getStringArray(R.array.yourArray);
}
}
试试这个。
public class YourActivity extends Activity{
Context mContext;
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.yourLayout);
mContext = this;
}
class DialogFragment{
String[] days = mContext.getResources().getStringArray(R.array.days);
...............
}
}
希望对您有所帮助!
每当我打电话时总是得到 NullPointerException
:
getApplicationContext().getResources().getStringArray(R.array.days);
我在 Activity
中从 DialogFragment
调用了它。我也尝试使用 getActivity()
,但这对我也不起作用。有人知道这个问题吗?
试试这个:
如果你把它写在片段中:
String[] days = getActivity().getResources().getStringArray(R.array.days);
如果你把这个写在 activity:
String[] days = this.getResources().getStringArray(R.array.days);
这只是一个假设,但大多数情况下,如果有人遇到此错误,他们在放置代码的位置或调用代码的时间上犯了错误。例如,如果您在 onCreate() 之前调用它:
public class YourActivity extends Activity {
private String foo = "foo";
private String[] yourArray = getResources().getStringArray(R.array.yourArray);
public void onCreate(Bundle savedInstanceState){
...
}
}
这将导致 NullPointerException。相反,你必须这样称呼它:
public class YourActivity extends Activity {
private String foo = "foo";
private String[] yourArray;
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.yourLayout);
yourArray = getResources().getStringArray(R.array.yourArray);
}
}
试试这个。
public class YourActivity extends Activity{
Context mContext;
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.yourLayout);
mContext = this;
}
class DialogFragment{
String[] days = mContext.getResources().getStringArray(R.array.days);
...............
}
}
希望对您有所帮助!