制作日历;变化的年份,当一个月份大于12月或小于1月

时间:2019-11-01 09:05:14

标签: android date kotlin calendar

我正在创建一个应用,希望在不同的月份保存一些数据。我要确保当您按下按钮时,一个月正在变化,如果一个月高于12月或低于1月,则该年正在变化。我只有一个月在变化,而涉及到变化年份,则有点问题,一年从2019年更改为2020年,但月份更改为2020年1月,而我不能更改为2020年2月。 这是一个代码,如果我不清楚,请问我

        //initialize calendar
    val calendar = Calendar.getInstance()

    //set month counter
    var monthInt:Int

    // check if the intent from pressing button, has any extras, if don't set monthInt to 0
    if(!intent.hasExtra("monthInt")) {
        monthInt = 0
    }else{
        monthInt = Integer.parseInt(intent.getStringExtra("monthInt").toString())
    }

    //get date, set title with date
    var year = calendar.get(Calendar.YEAR)
    var month = calendar.get(Calendar.MONTH)

    //add to month 1 to make it range from 1 to 12
    month += 1

    // add month counter
    month += monthInt

    //check if month is greater than 12 or lower than 1 than change year
    if(month > 12){
        month = 1
        year += 1
    }else if(month < 1){
        month = 12
        year += -1
    }

    //get buttons views
    var prevButton = findViewById<Button>(R.id.prevButton)
    var nextButton = findViewById<Button>(R.id.nextButton)


    //set listeners to change month
    prevButton.setOnClickListener{
        monthInt -= 1
        intent.putExtra("monthInt", (monthInt).toString())
        finish()
        startActivity(intent)
    }

    nextButton.setOnClickListener{
        monthInt += 1
        intent.putExtra("monthInt", monthInt.toString())
        finish()
        startActivity(intent)
    }

1 个答案:

答案 0 :(得分:0)

每次创建活动时

val calendar = Calendar.getInstance()

..

var year = calendar.get(Calendar.YEAR)
var month = calendar.get(Calendar.MONTH)

将会被调用,这似乎是一个问题