2017-05-03 72 views
0

我有一个datepicker可以用来选择一个日期并将其设置为一个edittext。我如何在日期上设置提醒?如何使用日期选择器在特定日期设置提醒?

设定来自上述日期选取一个EditText上的程序如下:

import android.app.DatePickerDialog; 
import android.content.DialogInterface; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.DatePicker; 
import android.widget.EditText; 

import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 
import java.util.Locale; 

public class MainActivity extends AppCompatActivity { 

    Calendar myCalendar= Calendar.getInstance(); 
    private EditText et; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     et =(EditText)findViewById(R.id.editText3); 
    } 

    DatePickerDialog.OnDateSetListener date =new 
    DatePickerDialog.OnDateSetListener(){ 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 
     // TODO Auto-generated method stub 
     myCalendar.set(Calendar.YEAR, year); 
     myCalendar.set(Calendar.MONTH, monthOfYear); 
     myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
     updateLabel(); 
    } 
}; 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    new DatePickerDialog(MainActivity.this, date, myCalendar 
      .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
      myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 

} 



private void updateLabel() { 

    String myFormat = "MM/dd/yy"; //In which you need put here 
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); 

    et.setText(sdf.format(myCalendar.getTime())); 
    } 
} 

回答

0

试试这个:

private void setAlarm(Calendar target){ 
    Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 1, intent, 0); 
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, target.getTimeInMillis(), pendingIntent); 
} 

让我知道,如果它帮你。

UPDATE:alarmReciever必须是这样的:

public class AlarmReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, 
    "AlarmReceiver.onReceive()", 
    Toast.LENGTH_LONG).show(); 
} 

} 

并将其添加到您的manifest.xmlapplication标签中:

<receiver android:name=".AlarmReceiver" android:process=":remote" /> 
+0

你可以给AlarmReciever – ken

+0

我的代码只是更新我的回答 –

+0

是否有清单文件的一些额外的权限或服务。 – ken

相关问题