Можно ли использовать переменную при построении URI в kotlin? - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь создать URI, используя appendQueryPArameter, чтобы позже использовать API, но по какой-то причине мое приложение падает, когда я использую URI. Это происходит сбой, когда я использую URI для получения необходимой информации, поэтому мне интересно, связано ли это с другим типом ошибки. Другой мой вопрос: правильно ли я передаю текст в URI-конструктор

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        findViewById<ProgressBar>(R.id.progressBar1).visibility=View.GONE
    }
    inner class myClass : AsyncTask<Void, Void, String>() {
        var text1=""
        override fun doInBackground(vararg params: Void?): String {
            var toReturn=""
            var buildUri1= Uri.parse(
                "https://api.meaningcloud.com/sentiment-2.1").buildUpon()
                .appendQueryParameter("key", "<<My Key>>")
                .appendQueryParameter("lang", "auto")
                .appendQueryParameter("txt",text1)
                .build()
            toReturn= URL(buildUri1.toString()).readText()
            return toReturn
        }
        override fun onPostExecute(result: String?) {
            super.onPostExecute(result)
            findViewById<ProgressBar>(R.id.progressBar1).visibility = View.GONE
            var myJson= JSONObject(result)
            var sTag=myJson.getString("score_tag")
            var confidence=myJson.getString("confidence")
            var irony=myJson.getString("irony")
            var subjectivity=myJson.getString("subjectivity")
            tagText.text="Score: "+sTag
            confidenceText.text="Confidence: "+confidence
            ironyText.text="Irony: "+irony
            subjectivityText.text="Subjectivity: "+subjectivity
        }
    }
    fun buttonClicked(view: View) {
        if(editText.text.isNotEmpty()) {
            findViewById<ProgressBar>(R.id.progressBar1).visibility =View.VISIBLE
            var i = myClass()
            i.text1=editText.text.toString()
            i.execute()
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...