我正在尝试写入 ListFragment 中的 sqlite 数据库,问题在于从该片段中获取上下文。
奇怪的是,调用 getActivity() 会返回 onActivityCreated 方法中的上下文,而不是其他地方(即使在调用之后)。我什至尝试从那里将上下文存储在类变量 mContext 中,但是下次我访问该变量时,它又变回了 null!
关于这里发生了什么的任何想法?片段生命周期中发生了什么奇怪的事情?
公共类 DayFragment 扩展 ListFragment {
private String day;
private Context mContext;
public DayFragment() {
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] values = new String[] { day, "Android", "iPhone", "WindowsMobile" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
mContext = this.getActivity();
}
public void createEntry() {
EntriesDataSource datasource = new EntriesDataSource(mContext);
datasource.open();
Entry entry = new Entry();
entry.setDay(day);
entry.setTitle("ok");
entry.setTime("09:00");
}
}