打開從片段可讀數據庫中,我想實現像在以下項目無法在Android的
https://github.com/steventrigg/AlarmClock/tree/master/AlarmClock
我試圖用片段,而不是活動的數據庫。但是每當我將活動轉換爲片段時,它都無法訪問數據庫。
我用下面的方法訪問數據庫
public AlarmModel getAlarm(long id) {
SQLiteDatabase db = this.getReadableDatabase(); //error is shown here
String select = "SELECT * FROM " + Alarm.TABLE_NAME + " WHERE " + Alarm._ID + " = " + id;
Cursor c = db.rawQuery(select, null);
if (c.moveToNext()) {
return populateModel(c);
}
return null;
}
我的片段類是
public class AlarmListActivity extends Fragment {
private AlarmListAdapter=new AlarmDBHelper(getActivity());;
private AlarmDBHelper dbHelper;
private Context mContext;
ListView list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mContext = getContext();
View view = inflater.inflate(R.layout.activity_alarm_list, container,
false);
list=(ListView) view.findViewById(R.id.listview);
FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startAlarmDetailsActivity(-1);
}
});
mAdapter = new AlarmListAdapter(getActivity(),dbHelper.getAlarms(),AlarmListActivity.this);
list.setAdapter(mAdapter);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Alarm List");
return view;
}
public void setAlarmEnabled(long id, boolean isEnabled) {
AlarmManagerHelper.cancelAlarms(getActivity());
AlarmModel model = dbHelper.getAlarm(id);
model.isEnabled = isEnabled;
dbHelper.updateAlarm(model);
AlarmManagerHelper.setAlarms(getActivity());
}
在logcat的只有它說,它不能獲得可讀數據庫。
thnx。這看起來更乾淨 –