1

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");
}
}
4

1 に答える 1