在单个字段中存储两个时间选择器值

时间:2017-11-07 08:36:16

标签: java android database sqlite timepicker

我的应用程序允许用户输入两次,以便在事件的特定时间内以静音模式设置设备。到目前为止我做了什么?

  • 从用户
  • 输入开始和结束时间
  • 激活静音模式并在用户指定的时间恢复声音模式。

我需要什么?

  • 在sqlite数据库中存储开始和结束时间值,但在单个时间字段中。 例如:

ID事件名称时间

1学习时间2:00 PM-4:00 PM

下面是我的MainActivity和databasehelper类

MainActivity.java

$a

Databasehelper.java

public class MainActivity extends AppCompatActivity {

EditText etMeal, etDesert;
EditText start, end;
Button btnAdd, btnView, btnsttime, btnend;
DatabaseHelper myDB;
SimpleDateFormat simpleDateFormat,simpleDateFormat1;
DatePicker dp;
CheckBox monday;
String[] Day;

TimePickerDialog timePickerDialog, secondtimepickerdialog;
static int RQS_1 = 1;
static int RQS_2 = 2;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnView = (Button) findViewById(R.id.btnView);
    btnsttime = (Button) findViewById(R.id.sttime);
    btnend = (Button) findViewById(R.id.endtime);
    monday=(CheckBox)findViewById(R.id.monchk);
    etMeal = (EditText) findViewById(R.id.etMeal);
    //etDesert = (EditText) findViewById(R.id.etDesert);

    myDB = new DatabaseHelper(this);

    btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String meal = etMeal.getText().toString();
            //String desert = etDesert.getText().toString();

            if (meal.length() != 0) {
                AddData(meal);
                etMeal.setText("");
                //etDesert.setText("");
            } else {
                Toast.makeText(MainActivity.this, "You must fill in the text fields!", Toast.LENGTH_LONG).show();
            }
        }
    });

    btnView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, View_Foods.class);
            startActivity(intent);
        }
    });

    btnsttime.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            start();
        }

    });
    btnend.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            end();
        }

    });



}
public void dat()
{
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);
Toast.makeText(MainActivity.this,dayOfTheWeek,Toast.LENGTH_LONG).show();
}

public void AddData(String meal) {

    boolean insertData = myDB.addData(meal);

    if (insertData == true) {
        Toast.makeText(MainActivity.this, "Data Successfully Inserted!", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(MainActivity.this, "Something went wrong :(.", Toast.LENGTH_LONG).show();
    }
}

public void start()
{
    Calendar cal=Calendar.getInstance();
   // simpleDateFormat=new SimpleDateFormat("hh:mm a");
    Date date = new Date();
    //String time=simpleDateFormat.format(date);
    int hour=cal.get(Calendar.HOUR);
    int minute=cal.get(Calendar.MINUTE);

    timePickerDialog=new TimePickerDialog(MainActivity.this, new
            TimePickerDialog.OnTimeSetListener()
            {

                @Override
                public void onTimeSet(TimePicker view,  final int hourOfDay1,final int minute1) {
                    Time time = new Time(hourOfDay1, minute1,0);
                    //GregorianCalendar j2=new GregorianCalendar(hourOfDay1,minute1,0);
                    //little h uses 12 hour format and big H uses 24 hour format
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mm a");

                    //format takes in a Date, and Time is a sublcass of Date
                    String s = simpleDateFormat.format(time);
                    btnsttime.setText(s);


                      //dp.getDayOfMonth();

                    Calendar calNow = Calendar.getInstance();
                    Calendar calSet = (Calendar) calNow.clone();

                    calSet.set(Calendar.HOUR_OF_DAY, hourOfDay1);
                    calSet.set(Calendar.MINUTE, minute1);
                    Toast.makeText(MainActivity.this,"Pending intent started",Toast.LENGTH_LONG).show();

                    Intent intent = new Intent(getBaseContext(), SilenceBroadCastReceiver.class);
                    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
                    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
                    alarmManager.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), pendingIntent);

                    //final long sttimer=((shour)*60*60*1000)+((sminute)*60*1000);


                }
            },hour,minute,false);
    timePickerDialog.setTitle("Start time");
    timePickerDialog.show();



}
public void end(){
    Calendar cal1=Calendar.getInstance();
    simpleDateFormat1=new SimpleDateFormat("hh:mm a");
    Date date1 = new Date();
    String time=simpleDateFormat1.format(date1);
    int hour=cal1.get(Calendar.HOUR);
    int minute=cal1.get(Calendar.MINUTE);

    secondtimepickerdialog=new TimePickerDialog(MainActivity.this, new
            TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view,  final int hourOfDay2,final int minute2) {
                    Time time = new Time(hourOfDay2, minute2,0);
                    //GregorianCalendar j2=new GregorianCalendar(hourOfDay1,minute1,0);
                    //little h uses 12 hour format and big H uses 24 hour format
                    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("h:mm a");

                    //format takes in a Date, and Time is a sublcass of Date
                    String s = simpleDateFormat1.format(time);
                    btnend.setText(s);
                    Calendar calNow1 = Calendar.getInstance();
                    Calendar calSet1 = (Calendar) calNow1.clone();

                    calSet1.set(Calendar.HOUR_OF_DAY, hourOfDay2);
                    calSet1.set(Calendar.MINUTE, minute2);
                    Toast.makeText(MainActivity.this,"Pending intent started",Toast.LENGTH_LONG).show();

                    Intent intent = new Intent(getBaseContext(), UnsilenceBroadcastReceiver.class);
                    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_2, intent, 0);
                    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
                    alarmManager.set(AlarmManager.RTC_WAKEUP, calSet1.getTimeInMillis(), pendingIntent);

                    //final long sttimer=((shour)*60*60*1000)+((sminute)*60*1000);


                }
            },hour,minute,false);
    timePickerDialog.setTitle("End time");
    secondtimepickerdialog.show();

}
}

0 个答案:

没有答案