【问题标题】:Kotlin: Launching activity with companion using startActivityForResultKotlin:使用 startActivityForResult 与同伴一起启动活动
【发布时间】:2020-09-03 01:46:48
【问题描述】:

我正在构建一个倒计时活动,该活动需要将剩余时间传递回调用活动(当倒计时仅部分使用时)。

class CountDownActivity : AppCompatActivity() {
companion object{
    const val REQUEST_START_COUNTDOWN: Int = 2

    fun CountDownIntent(iToDoRecord: iToDoRecord): Intent {
        return Intent(maincontext, CountDownActivity::class.java).apply {
            putExtra(MainActivity.INTENT_COUNTDOWN_TASK, iToDoRecord.itaskname)
            putExtra(MainActivity.INTENT_CALLING_DATE, MainActivity.currentDate)
            putExtra(MainActivity.INTENT_COUNTDOWN_TIME, iToDoRecord.itaskduration.toLong())
            putExtra(MainActivity.INTENT_COUNTDOWN_TASKID, iToDoRecord.itaskid)
            putExtra(MainActivity.INTENT_COUNTDOWN_TASKMILLI, iToDoRecord.itaskmilliremaining.toLong())
        }
    }
}.....

}

然后我从我的 recyclerview 中这样称呼它:

 val intentitd = Intent(holder.textViewID.getContext(), CountDownActivity.CountDownIntent(currentiToDo)::class.java)
        //intentitd.putExtra(MainActivity.INTENT_CALLING_DATE, currentdate)
        startActivityForResult(CountDownActivity,CountDownActivity.CountDownIntent(currentiToDo),CountDownActivity.REQUEST_START_COUNTDOWN)

编译器给我以下错误: “类型不匹配:推断类型为 CountDownActivity.Companion 但预期为 Activity”

我做错了什么?

【问题讨论】:

    标签: kotlin startactivityforresult


    【解决方案1】:

    您可以尝试将活动称为:

    val intent =  CountDownActivity.CountDownIntent(currentiToDo)
    
    startActivityForResult(intent,CountDownActivity.REQUEST_START_COUNTDOWN)
    

    【讨论】:

    • 感谢您的回答。试过了,没有运气。这里的文档:developer.android.com/reference/androidx/core/app/… 表示我们需要使用 public static void startActivityForResult (Activity activity, Intent intent, int requestCode, Bundle options)
    • 可能是使用上下文的问题。由于您试图从回收器适配器内部调用它,您可以尝试如下:( holder.textViewID.getContext() as AppCompatActivity).startActivityForResult(intent, CountDownActivity.REQUEST_START_COUNTDOWN)
    • 成功了,ACR!福尔摩斯基因。非常感谢。
    • 很高兴我能帮上忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多