Reputation: 21
I've recently started Android programming and sorry for my lame question. I've been trying to use my database class methods in my AlamManager class for saving the alarms but I haven't figured out how. I even tried to find a working example online and I couldn't find any either.
The problem is when I add the last two methods of my database class to my MainActivity class the alarms do not go off.
Any help would be greatly appreciated.
So, here is my code:
MainActivity.java
public class MainActivity extends AppCompatActivity {
DatabaseHandler MyDatabase;
EditText editText1, editText2;
Button button1;
int mHour, mMinute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDatabase = new DatabaseHandler(this);
editText1 = (EditText) findViewById(R.id.editText1);
editText2 = (EditText) findViewById(R.id.editText2);
button1 = (Button) findViewById(R.id.button1);
editText2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onOpenTimePickerDialog(false);
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, mHour);
calendar.set(Calendar.MINUTE, mMinute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
PendingIntent pIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pIntent);
}
});
}
private void onOpenTimePickerDialog(boolean is24r) {
Calendar calendar = Calendar.getInstance();
TimePickerDialog timePickerDialog = new TimePickerDialog(
MainActivity.this,
onTimeSetListener,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
is24r);
timePickerDialog.setTitle("set time");
timePickerDialog.show();
}
TimePickerDialog.OnTimeSetListener onTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
}
};
}
DatabaseHandler.java
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "friends";
private static final String TABLE_NAME = "friends_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "SUBJECT";
public static final String COL_3 = "TIME";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, SUBJECT TEXT, TIME INTEGER) ");
}
//to upgrade the database
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean addData(String subject, String time) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COL_2, subject);
values.put(COL_3, time);
long result = db.insert(TABLE_NAME, null, values);
if (result == -1) {
return false;
} else {
return true;
}
} // The first method I want to use in my MainActivity class
public Cursor returnData() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + TABLE_NAME, null);
return cursor;
} // The secondmethod I want to use in my MainActivity class
}
Upvotes: 1
Views: 2322
Reputation: 54
please check this tutorial out, it teaches how to create a reminder which also made use of SQLite database.
Upvotes: 1