【问题标题】:How do I pass selected date data to an intent?如何将选定的日期数据传递给意图?
【发布时间】:2019-08-27 14:43:24
【问题描述】:

如何将选定的日期数据传递给意图? 通过使用意图传递,但默认而不是更改

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

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    dayTextView.setText(nowTimeGenerator()) //현재날짜 설정

    //day 텍스트 뷰
    dayTextView.setOnClickListener {
        checkDate()

    }
    //홈화면 이동
    mainAcitvity_btn.setOnClickListener {
        intentHome()
    }
}
fun checkDate(){
    var date_listener = object : DatePickerDialog.OnDateSetListener{
        override fun onDateSet(view: DatePicker?, year: Int, month: Int, day: Int) {

            dayTextView.setText("${year}.${month+1}.${day}")
        }
    }
    var builder = DatePickerDialog(this, date_listener, year, month, day)
    builder.show()
}
fun intentHome(){
    val homeIntent = Intent(this, HomeActivity::class.java)
    homeIntent.putExtra("year", year.toString())
    homeIntent.putExtra("month", month.toString())
    homeIntent.putExtra("day", day.toString())
    startActivity(homeIntent)
}

如果当前日期为 27 天且日期选择为 28 天,则 Intent 包含 27 天。

【问题讨论】:

  • 您没有更改默认值。更新到DatePickerDialog.OnDateSetListener

标签: android android-intent kotlin datepickerdialog


【解决方案1】:

将选定的日期存储在字符串中并有意传递该字符串

var mSelectedDate : String? = null

override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     setContentView(R.layout.activity_main)

     mSelectedDate = nowTimeGenerator()
     dayTextView.setText(nowTimeGenerator()) //현재날짜 설정

     //day 텍스트 뷰
    dayTextView.setOnClickListener {
        checkDate()
      }

     //홈화면 이동
     mainAcitvity_btn.setOnClickListener {
        intentHome()
      }
}
fun checkDate(){
   var date_listener = object : DatePickerDialog.OnDateSetListener{
    override fun onDateSet(view: DatePicker?, year: Int, month: Int, day: Int) 
       {
        mSelectedDate = "${year}.${month+1}.${day}"
        dayTextView.setText("${year}.${month+1}.${day}")
    }
}
var builder = DatePickerDialog(this, date_listener, year, month, day)
builder.show()
 }
  fun intentHome(){
    val homeIntent = Intent(this, HomeActivity::class.java)
     homeIntent.putExtra("selectedDate", mSelectedDate)
       startActivity(homeIntent)
     }

【讨论】:

    猜你喜欢
    • 2015-03-10
    • 2011-12-22
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多