每当我打电话时,我总是会NullPointerException
:
getApplicationContext().getResources().getStringArray(R.array.days);
我是在DialogFragment
的{{1}}中拨打的。我也尝试使用Activity
,但这对我也没有用。有没有人对这个问题有任何想法?
答案 0 :(得分:7)
试试这个:
如果你用片段写这个:
String[] days = getActivity().getResources().getStringArray(R.array.days);
如果你在活动中写这个:
String[] days = this.getResources().getStringArray(R.array.days);
答案 1 :(得分:2)
这只是一个假设,但主要是如果有人得到这个错误,他们会在放置代码或调用代码时出错。例如,如果您在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);
}
}
答案 2 :(得分:1)
试试这个。
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);
...............
}
}
我希望它有所帮助!