onActivityResult从日历返回时显示错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了onActivityResult从日历返回时显示错误相关的知识,希望对你有一定的参考价值。

我使用以下代码打开日历应用程序:

class Appointments : AppCompatActivity() {

    lateinit var tv:TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_appointments)
        tv = findViewById(R.id.textView4)

        tv.setOnClickListener(View.OnClickListener {
            var callIntent = Intent(Intent.ACTION_EDIT)
                    .setType("vnd.android.cursor.item/event")
            startActivityForResult(callIntent, 3);
        })
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 3 && resultCode == Activity.RESULT_OK && data!=null){
            Toast.makeText(this@Appointments,"Some data came",Toast.LENGTH_SHORT).show()
        } else{
            Toast.makeText(this@Appointments,"Some Error",Toast.LENGTH_SHORT).show()
        }
    }
}

我一直收到“一些错误”的消息。我尝试删除'data!= null',但我认为结果代码是问题所在。

我最终想要实现的是:

  • 用户打开应用程序
  • 用户单击按钮以打开日历应用程序
  • 用户能够看到日历,然后用户在日历中预约
  • 用户回到应用程序,我能够提取新约会的日期和时间

有可能吗?如果是,那么将非常感谢一些代码示例。如果不可能,那么实现这一目标的其他方法是什么?

答案

删除对super的调用。调用super将更改requestCode。这个事实在很多文档中并不完全清楚,但过去我已经对它进行了轮换。同样,如果您遇到与片段到活动通信的类似问题,您会发现此答案Wrong requestCode in onActivityResult很有用

以上是关于onActivityResult从日历返回时显示错误的主要内容,如果未能解决你的问题,请参考以下文章

onActivityResult 从相机返回,Intent null

从图库或相机返回后不调用 onActivityResult

从画廊返回后,不在 Fragment 中调用 onActivityResult

从 SwiftyJSON API 分配解析的 JSON 显示错误

Android Photo Gallery不会从OnActivityResult中的数据返回正确的Uri

onActivityResult 图像 uri 不起作用