java Calender.getInstance() 在 Android Studio 中出错

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/38291088/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 03:17:39  来源:igfitidea点击:

Calender.getInstance() gives error in Android Studio

javaandroidandroid-calendarandroid-datepicker

提问by Muhammad Arsal

I'm trying to pop-open a DatePickerdialogue box when my EditTextis clicked. The problem is, when I try to instantiate my Calenderobject with Calender.getInstance()the creepy-red-underline appears below getInstance().

DatePicker当我EditText点击我的时候,我试图弹出一个对话框。问题是,当我尝试Calender使用Calender.getInstance()下面出现的令人毛骨悚然的红色下划线实例化我的对象时getInstance()

Calender myCalender = Calender.getInstance();

Hover over it and it says

将鼠标悬停在它上面,它说

Call requires API level 24(current minimum is 15).

调用需要 API 级别 24(当前最低为 15)。

Obviously I expect my app to run on devices at the minimum API level 15. Please help me with this, I'm new to Android. Thank you.

显然,我希望我的应用程序在最低 API 级别 15 的设备上运行。请帮助我,我是 Android 新手。谢谢你。

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

我尝试按照此方法将 DatePicker 添加到我的 EditText

回答by CommonsWare

You have the wrong importstatement for Calendar. It needs to be java.util.Calendar. My guess is that you have an importfor android.icu.util.Calendar.

您对 的import陈述有误Calendar。它需要是java.util.Calendar。我的猜测是你有一个importfor android.icu.util.Calendar

回答by Netaji Mohite

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*********************************/

回答by user roy

use: import java.util.Calendar;

使用:导入java.util.Calendar;

This is the package we need to use to get Calendar on the dialog box, instead of,

这是我们需要用来在对话框中获取日历的包,而不是,

instead: import android.icu.util.Calendar;

相反:导入 android.icu.util.Calendar;

this works fine.

这工作正常。