>source

MySQL 데이터베이스에서 마지막 ID를 가져오는 PHP 파일이 있습니다. 파일 결과는 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"이 표시됩니다. 외부 문자열/변수에 대해 "42"가 포함된 올바른 응답 "lastID"를 얻으려면 어떻게 해야 합니까?

이것은 PHP 서버에서 가져온 것이지만 문제 관점에서 PHP와 관련이 없는 것 같아서 해당 태그를 제거합니다. 실제 문제에 대해서는 이 특정 문제를 알지 못하지만 범위 지정 및/또는 동시성 문제인 것으로 보입니다.

Chris Haas2021-11-05 15:09:11
  • 답변 # 1

    Volley가 PHP와 통신하고 응답을 받기 위해 변경 사항을 받기 전에 축배를 표시하고 있습니다.

    토스트는 원래 있던 곳에 보관하세요.

    또는 응답을 받은 후에만 건배하십시오.

    테스트를 위해 두 개의 토스트를 보관하면 알 수 있습니다.

    흠 . 나는 이것에 대한 논리를 이해하지 못합니다. "lastID= response" 줄 바로 아래에 Toast를 설정했을 때 결과는 올바르게 42였습니다. Volley 후에 Toast를 사용하면 결과는 "null"입니다. 발리는 나에게 정확한 응답을 제공하지만 발리 밖에서 oder 후에 lastID를 사용할 수 없습니다.

    UwBe International2021-11-05 15:09:11

    건배 2개로 테스트 해보셨나요? 어느 것이 먼저입니까?

    blackapps2021-11-05 15:09:11

    게시물의 code를 수정해야 합니다. 주석의 code를 엉망으로 만들지 않습니다. 글쎄요...댓글은 왜 안써요...? 이제 이유를 알았습니다. 이제 code를 어떻게 조정하시겠습니까?

    blackapps2021-11-05 15:09:11
  • 답변 # 2

    제 생각에는 PHP 결과를 HTML에서 JSON 데이터로 변경해야 합니다.

    Android에서는 HTTP 클라이언트를 만들어야 하며 다음을 사용할 수 있습니다. 개조또는 빠른 안드로이드 네트워킹. 당신이 좋아한다면 발리그냥 계속 해

    내 PHP 파일에는 echo encode_json($response);이 있습니다. 아마, 나는 지금 개조를 시도할 것입니다.

    UwBe International2021-11-05 15:09:11

    좋습니다. 결과가 HTML인 링크를 시도하고 있습니다. 이 링크 code.tutsplus.com/tutorials/에서 PHP를 사용하여 REST API를 만드는 방법을 배울 수 있습니다.

    JalalKun2021-11-05 15:09:11
  • 이전 Android Studio에서 com.squareup:javawriter:2.5.0을 해결할 수 없음
  • 다음 Mips -배열 초기화 및 인덱스 값 출력