时间选择器,日期选择器问题Android Studio

时间:2020-11-07 14:58:54

标签: java android android-studio datepicker datetimepicker

在那里我想发送带有编辑文本变量的特殊日期和时间的通知。我在项目上使用DatePicker,TimePicker,AlertReciever.class和edittexts。我尝试过,但无法正常工作。我怎么能解决我的问题呢?你能快点吗?对我来说很重要。

activity.class

public class hatirlatici extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener,DatePickerDialog.OnDateSetListener {
    Calendar now = Calendar.getInstance();
    Button hatirlaticitarihsaat,backhome;
    EditText editisim,editaciklama;
    ImageView tick;
    TextView textbasariylakuruldu,texthatirlaticibas,hatirlaticiaciktext,zaman;
    private int notificationId = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hatirlatici);
        zaman=findViewById(R.id.zaman);
        editisim=findViewById(R.id.hatbaslik);
        tick=findViewById(R.id.tick);
        textbasariylakuruldu=findViewById(R.id.textbasariylakuruldu);
        texthatirlaticibas=findViewById(R.id.texthatirlaticibas);
        hatirlaticiaciktext=findViewById(R.id.hatirlaticiaciktext);
        editaciklama=findViewById(R.id.hataciklama);
        hatirlaticitarihsaat= findViewById(R.id.taarihsaatbutton);
        hatirlaticitarihsaat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DialogFragment datePicker = new DatePickerFragment();
                datePicker.show(getSupportFragmentManager(), "date picker");
            }
        });


    }
    public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
        now.set(Calendar.HOUR_OF_DAY, hourOfDay);
        now.set(Calendar.MINUTE, minute);
        now.set(Calendar.SECOND, 0);

        Intent intent = new Intent(hatirlatici.this, AlertReciever.class);
        intent.putExtra("notificationId", notificationId);
        intent.putExtra("messagex", editaciklama.getText().toString());
        intent.putExtra("titlex", editisim.getText().toString());
        PendingIntent alarmintent = PendingIntent.getBroadcast(
                hatirlatici.this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT
        );
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        Calendar startalarm = Calendar.getInstance();
        startalarm.set(Calendar.HOUR_OF_DAY, hourOfDay);
        startalarm.set(Calendar.SECOND, 0);
        startalarm.set(Calendar.MINUTE, minute);
        long alarmstartTime = startalarm.getTimeInMillis();
        alarmManager.set(AlarmManager.RTC_WAKEUP, alarmstartTime, alarmintent);
    }
    private void startNotification(Calendar now){
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(this,AlertReciever.class);
        intent.putExtra("Isım_ID", editisim.getText().toString());
        intent.putExtra("Aciklama", editaciklama.getText().toString());
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this,1,intent,0);
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), pendingIntent);

    }


    @Override
    public void onDateSet(DatePicker datePicker, int year, int month, int day) {
        now.set(Calendar.YEAR, year);
        now.set(Calendar.MONTH, month);
        now.set(Calendar.DAY_OF_MONTH, day);
        DialogFragment timePicker = new TimePickerFragment();
        timePicker.show(getSupportFragmentManager(), "time picker");
        String Datex = DateFormat.getDateInstance(DateFormat.DATE_FIELD).format(now.getTime());
        zaman.setText(Datex);
        Calendar startalarm = Calendar.getInstance();

        startalarm.set(Calendar.DAY_OF_MONTH,day );
        startalarm.set(Calendar.YEAR, year);
        startalarm.set(Calendar.MONTH, month);
        Intent intent = new Intent(hatirlatici.this, AlertReciever.class);
        PendingIntent alarmintent = PendingIntent.getBroadcast(
                hatirlatici.this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT
        );
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        long alarmstartTime = startalarm.getTimeInMillis();
        alarmManager.set(AlarmManager.RTC_WAKEUP, alarmstartTime, alarmintent);


    }
}

AlertReciever.class

public class AlertReciever extends BroadcastReceiver {
    private Notification notification;
    private static final String ChannelID = "Sample_Channel";

    @Override
    public void onReceive(Context context, Intent intent) {
        int NotificationId = intent.getIntExtra("notificationId", 0);
        String message = intent.getStringExtra("messagex");
        String title = intent.getStringExtra("titlex");
        Intent mainIntent = new Intent(context, hatirlatici.class);
        PendingIntent contentIntent = PendingIntent.getActivity(
                context,0,mainIntent,0
        );
  NotificationManager notificationManager =
          (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
  if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){
      CharSequence channelName = "My Notification";
      int importance = NotificationManager.IMPORTANCE_DEFAULT;
      NotificationChannel channel = new NotificationChannel(ChannelID,channelName,importance);
      notificationManager.createNotificationChannel(channel);

        }

  NotificationCompat.Builder builder = new NotificationCompat.Builder(context, ChannelID)
          .setContentText(message)
          .setContentTitle(title)
          .setContentIntent(contentIntent)
          .setPriority(NotificationCompat.PRIORITY_DEFAULT)
          .setSmallIcon(R.drawable.ic_baseline_menu_book_24);

    notificationManager.notify(NotificationId, builder.build());
    }


}

0 个答案:

没有答案