2016-07-10 47 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*********************************/ 
相关问题