Calender.getInstance() 在 Android Studio 中给出错误
Calender.getInstance() gives error in Android Studio
我试图在单击 EditText
时弹出一个 DatePicker
对话框。问题是,当我尝试用 Calender.getInstance()
实例化我的 Calender
对象时,令人毛骨悚然的红色下划线出现在 getInstance()
.
下面
Calender myCalender = Calender.getInstance();
将鼠标悬停在上面,上面写着
Call requires API level 24(current minimum is 15).
显然,我希望我的应用程序在设备上 运行 至少 API 级别 15。请帮助我,我是 Android 的新手。谢谢。
I tried to follow this method to add a DatePicker to my EditText
您对 Calendar
的 import
陈述有误。它需要是 java.util.Calendar
。我猜你有一个 import
对应 android.icu.util.Calendar
.
使用:导入java.util.Calendar;
这是我们需要用来在对话框上获取日历的包,而不是
改为:导入android.icu.util.Calendar;
这很好用。
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*********************************/
我试图在单击 EditText
时弹出一个 DatePicker
对话框。问题是,当我尝试用 Calender.getInstance()
实例化我的 Calender
对象时,令人毛骨悚然的红色下划线出现在 getInstance()
.
Calender myCalender = Calender.getInstance();
将鼠标悬停在上面,上面写着
Call requires API level 24(current minimum is 15).
显然,我希望我的应用程序在设备上 运行 至少 API 级别 15。请帮助我,我是 Android 的新手。谢谢。
I tried to follow this method to add a DatePicker to my EditText
您对 Calendar
的 import
陈述有误。它需要是 java.util.Calendar
。我猜你有一个 import
对应 android.icu.util.Calendar
.
使用:导入java.util.Calendar;
这是我们需要用来在对话框上获取日历的包,而不是
改为:导入android.icu.util.Calendar;
这很好用。
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*********************************/