Составление календаря;изменение года, когда месяц больше, чем декабрь, или меньше, чем январь - PullRequest
0 голосов
/ 01 ноября 2019

Я создаю приложение, в котором я хочу сохранить некоторые данные в разные месяцы. Я хочу, чтобы при нажатии кнопки менялся месяц, а если месяц больше, чем декабрь, или меньше, чем январь, год меняется, у меня меняется только месяц, когда речь идет о смене года, возникает небольшая проблема,что год меняется с 2019 на 2020, но месяц меняется на январь 2020, а я не могу перейти на февраль 2020. Вот код, если я что-то неясно, просто спросите меня

        //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 голосов
/ 01 ноября 2019

Когда действие создается каждый раз, когда будет вызываться

val calendar = Calendar.getInstance()

..

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

, что кажется проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...