【问题标题】:Android: Get PHP Result into a String in KotlinAndroid:在 Kotlin 中将 PHP 结果转换为字符串
【发布时间】:2021-12-18 09:01:44
【问题描述】:

我有一个 PHP 文件,它可以从 MySQL 数据库中获取最后一个 ID。 文件结果为 42。

如果我在 Android (Kotlin) 中写这个:

var lastID: String? = null
        val queue = Volley.newRequestQueue(this)
        val url = "https://uwbeinternational.org/android/getLastSPLId.php"

        // Request a string response from the provided URL.
        val stringRequest = StringRequest(
            Request.Method.GET, url,
            { response ->
                lastID = response
                Toast.makeText(applicationContext, "ID Lautet: " + lastID, Toast.LENGTH_LONG).show()
            },
            { lastID = "Fail!" })

        queue.add(stringRequest)

它有效,吐司向我显示“42”。但是,我如何在函数之外使用“lastID”作为字符串?如果我尝试写:

    var lastID: String? = null
            val queue = Volley.newRequestQueue(this)
            val url = "https://uwbeinternational.org/android/getLastSPLId.php"

            // Request a string response from the provided URL.
            val stringRequest = StringRequest(
                Request.Method.GET, url,
                { response ->
                    lastID = response
                },
                { lastID = "Fail!" })

            queue.add(stringRequest)
Toast.makeText(applicationContext, "ID Lautet: " + lastID, Toast.LENGTH_LONG).show()

结果 (lastID) 显示“null”。我可以或应该做些什么来获得对外部字符串/变量的正确响应“lastID”和“42”?

【问题讨论】:

  • 虽然这是来自 PHP 服务器,但从问题的角度来看,它似乎与 PHP 无关,因此我将删除该标签。对于实际问题,我不知道这个具体问题,但它似乎是一个作用域和/或并发问题。

标签: android kotlin android-volley


【解决方案1】:

在 Volley 获得更改以与 php 通信并获得响应之前,您正在展示您的 toast。

让 Toast 保持原状。

或者在收到回复后才干杯。

为了测试,保持两个敬酒,你会看到。

【讨论】:

  • 嗯。我不明白这件事的逻辑。当我直接在“lastID = response”行下设置 Toast 时,结果正确为 42。如果我在 Volley 之后使用 Toast,结果为“null”。 Volley 给了我一个正确的响应,但是在 volley 之外我不能使用 lastID。
  • 你是用两个吐司做测试的吗?哪个在先?
  • 您应该已经修改了帖子中的代码。不要在评论中弄乱代码。嗯……你为什么不评论……?你现在知道原因了。您现在将如何调整您的代码?
【解决方案2】:

在我看来,您需要使用 JSON 数据将 PHP 结果从 HTML 更改为 REST API

在Android中你必须制作HTTP客户端,你可以使用RetrofitFast Android Networking。如果你喜欢Volley,请继续

【讨论】:

  • 在我的 PHP 文件中,我有 echo encode_json($response);。也许,我现在会尝试改造。
  • 很好,我正在尝试您的链接,结果是 HTML,您可以在此链接中学习如何使用 PHP 制作 REST API code.tutsplus.com/tutorials/…
猜你喜欢
  • 2017-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2020-03-16
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多