2016-07-10 28 views
25

我試圖彈出一個DatePicker對話框,當我點擊EditText時。問題是,當我嘗試使用Calender.getInstance()實例化我的Calender對象時,令人毛骨悚然的紅色下劃線出現在getInstance()的下方。Calender.getInstance()在Android Studio中發生錯誤

Calender myCalender = Calender.getInstance(); 

將鼠標懸停在它和它說

呼叫需要API等級24(目前最低爲15)。

很明顯,我希望我的應用可以在最低API級別15的設備上運行。請幫助我,我是Android新手。謝謝。

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

+3

您使用哪個日曆? – Jens

回答

99

您有Calendar錯誤import聲明。它需要是java.util.Calendar。我的猜測是你的importandroid.icu.util.Calendar

+0

很棒@CommonsWare – jemsnaban

-2

use:import java.util.Calendar;

這是我們需要使用以取得該對話框日曆,而不是包裝,

代替:進口android.icu.util.Calendar;

這工作正常。

+9

歡迎來到StackOverflow。不要複製其他成員的帖子,而是拿出原創的答案。 –

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*********************************/ 
相關問題