web-dev-qa-db-ja.com

Calendar.getInstance()は、Android Studioでエラーを返します

DatePickerがクリックされたときに、EditTextダイアログボックスをポップオープンしようとしています。問題は、Calender.getInstance()Calenderオブジェクトをインスタンス化しようとすると、getInstance()の下に不気味な赤い下線が表示されることです。

Calender myCalender = Calender.getInstance();

それにカーソルを合わせると、

呼び出しには、APIレベル24(現在の最小値は15)が必要です。

明らかに、アプリは最小APIレベル15でデバイス上で実行されることを期待しています。これを手伝ってください。ありがとうございました。

このメソッドに従ってDatePickerをEditTextに追加しようとしました

35
Muhammad Arsal

importの間違ったCalendarステートメントがあります。 Java.util.Calendarである必要があります。私の推測では、Android.icu.util.Calendarにはimportがあります。

121
CommonsWare
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*********************************/
0
Netaji Mohite