ListFragment で sqlite db に書き込もうとしています。問題は、この Fragment 内からコンテキストを取得することです。
奇妙なことに、getActivity() を呼び出すと onActivityCreated メソッドでコンテキストが返されますが、他の場所では返されません (その呼び出しの後でも)。そこからコンテキストをクラス変数 mContext に保存しようとしましたが、次にその変数にアクセスするとnullに戻ります!
ここで何が起こっているかについてのアイデアはありますか?Fragment のライフサイクルで何か奇妙なことが起こっていますか?
public class DayFragment extends 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");
}
}