2016-07-10 54 views
25

Sto tentando di aprire una finestra di dialogo DatePicker quando viene fatto clic sul mio EditText. Il problema è che quando provo a creare un'istanza dell'oggetto Calender con Calender.getInstance(), la sottolineatura raccapricciante viene visualizzata sotto getInstance().Calender.getInstance() restituisce un errore in Android Studio

Calender myCalender = Calender.getInstance(); 

il mouse sopra di esso e si dice

chiamata richiede livello di API 24 (minimo attuale è 15).

Ovviamente mi aspetto che l'app venga eseguita sui dispositivi al livello minimo di API 15. Per favore aiutatemi, sono nuovo su Android. Grazie.

I tried to follow this method to add a DatePicker to my EditText

+3

Quale calendario usi? – Jens

risposta

99

avete la sbagliata import economico Calendar. Deve essere java.util.Calendar. La mia ipotesi è che tu abbia un import per android.icu.util.Calendar.

+0

great @CommonsWare – jemsnaban

-2

uso: import java.util.Calendar;

Questo è il pacchetto che dobbiamo utilizzare per ottenere calendario nella finestra di dialogo, invece di,

invece: import android.icu.util.Calendar;

funziona correttamente.

+9

Benvenuti in StackOverflow. Non copiare i post degli altri membri, ma trovare risposte originali. –

0
This code will help you to solve your problem.. 
It will pop-open a DatePicker dialogue box when onClick EditText box: 

1) MainActivity.java 

import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.DialogFragment; 
import android.icu.text.DateFormat; 
import android.icu.util.Calendar; 
import android.support.v7.app.AlertDialog; 
import android.view.View; 
import android.widget.DatePicker; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity 
{ 
    EditText editText1; 
    private int nYear,nMonth,nDay,sYear,sMonth,sDay; 
    static final int DATE_ID = 0; 
    Calendar c = Calendar.getInstance(); 

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

     editText1 = (EditText) findViewById(R.id.editText1); 
     sYear = c.get(Calendar.YEAR); 
     sMonth = c.get(Calendar.MONTH); 
     sDay = c.get(Calendar.DAY_OF_MONTH); 
     //editText 
     editText1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       showDialog(DATE_ID); 
      } 
     }); 

    /***************calender code*****************/ 
    private void calender_fetch() 
    { 
     editText1.setText((nMonth+1)+"/"+nDay+"/"+nYear+""); 
    } 

    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
     { 
      nYear = year; 
      nMonth = monthOfYear; 
      nDay = dayOfMonth; 
      calender_fetch(); 
     } 
    }; 
    @Override 
    protected Dialog onCreateDialog(int id) 
    { 
     switch (id) 
     { 
      case DATE_ID: 
       return new DatePickerDialog(this, mDateSetListener, sYear, sMonth, sDay); 
     } 
     return null; 
    } 
    /*************************calender close*********************************/