【问题标题】:Type inference failed: Not enough information to infer parameter T in Paypal payment for Kotlin类型推断失败:没有足够的信息来推断 Kotlin 的 Paypal 支付中的参数 T
【发布时间】:2021-02-11 11:55:21
【问题描述】:

当用户确认付款时,我尝试根据 Paypal Sdk 获取交易详情。但是,下面的代码遇到了问题

遇到的问题:

类型推断失败:没有足够的信息来推断参数 T in

fun getParcelableExtra 请明确指定它

对于这一行:val confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION)

不确定 toString(4) 是什么意思:
val paymentDetails = confirm.toJSONObject().toString(4)

谢谢

override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent?) {
         super.onActivityResult(requestCode, resultCode, data)

        if(requestCode == my_request_code){

         
            if(resultCode == Activity.RESULT_OK) {

             
                if (resultCode == Activity.RESULT_OK)
                {
                   
                    val confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION)

                    if (confirm != null)
                    {
                        try
                        {
                            //Getting the payment details
                            val paymentDetails = confirm.toJSONObject().toString(4)

      
                        // Log.i("paymentExample", paymentDetails)
                        //Starting a new activity for the payment details and also putting the payment details with intent
                           
                            startActivity(Intent(this, ConfirmationActivity::class.java)
                                .putExtra("PaymentDetails", paymentDetails)
                                .putExtra("PaymentAmount", paymentAmount))
                        }
                        catch (e: JSONException) {
                            Log.e("paymentExample", "an extremely unlikely failure occurred: ", e)
                        }
                   }
              }
          }
     }
}

【问题讨论】:

    标签: kotlin paypal


    【解决方案1】:

    当你从 Parcelable 转换数据时,你必须指定你需要在哪个对象中转换。

    如果类是PaymentConfirmation,则根据文档,您必须像这样指定:

    val confirm: PaymentConfirmation = data?.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION)
    

    【讨论】:

    • 你能告诉我 toString(4) 是什么意思 confirm.toJSONObject().toString(4) 。谢谢
    【解决方案2】:

    不确定 toString(4) 是什么意思: val paymentDetails = confirm.toJSONObject().toString(4)

    这应该是一个单独的问题,但它是a method on JSONObject

    public String toString (int indentSpaces)

    将此对象编码为人类可读的 JSON 字符串以进行调试

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      相关资源
      最近更新 更多