gpt4 book ai didi

kotlin - 如何在 kotlin 中添加加载对话框

转载 作者:行者123 更新时间:2023-12-02 02:48:32 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序加载数据 json url 时添加加载对话框,因为在午餐应用程序时显示空白屏幕直到数据出现

这是代码

inner class Dep : AsyncTask<String, String, String>(){


// for build connection
override fun doInBackground(vararg url: String?): String{

var text : String
val connection = URL(url[0]).openConnection() as HttpURLConnection

try {
connection.connect()
text = connection.inputStream.use { it.reader().use{reader -> reader.readText()} }


} finally{

connection.disconnect()

}
return text
}

override fun onPostExecute(result: String?) {

val progressDialog = ProgressDialog(Context,this@MainActivity)
progressDialog.setMessage("loading")
progressDialog.setCancelable(false)
progressDialog.show()

super.onPostExecute(result)
handleJson(result)

if (progressDialog != null)
progressDialog.dismiss();

}

private fun handleJson (jsonString: String?){

val jsonObj = JSONObject(jsonString)
val result = jsonObj.getJSONObject("result")
val response = result.getJSONObject("response")
val airport = response.getJSONObject("airport")
val pluginData = airport.getJSONObject("pluginData")
val schedule = pluginData.getJSONObject("schedule")
val arrivals = schedule.getJSONObject("departures")
// val data = arrivals.getJSONObject("data")
val jsonArray = JSONArray(arrivals.get("data").toString())

val list = ArrayList<FlightShdu>()
var x = 0
while (x < jsonArray.length()){

val jsonObject = jsonArray.getJSONObject(x)



list.add(FlightShdu(

jsonObject.getJSONObject("flight").getJSONObject("identification").getJSONObject("number").getString("default"),
jsonObject.getJSONObject("flight").getJSONObject("airline").getString("name"),
jsonObject.getJSONObject("flight").getJSONObject("status").getString("text"),
jsonObject.getJSONObject("flight").getJSONObject("airline").getJSONObject("code").getString("icao"),
jsonObject.getJSONObject("flight").getJSONObject("time").getJSONObject("scheduled").getString("departure")


))


x++
}
list.forEach(::println)

val adapter = ListAdapte(this@MainActivity,list)
flight_dep_list.adapter = adapter

}

// for get items from json api
override fun onProgressUpdate(vararg values: String?) {

}


}

我在 onPostExecute 中使用了进度对话框代码
 override fun onPostExecute(result: String?) {

val progressDialog = ProgressDialog(Context,this@MainActivity)
progressDialog.setMessage("loading")
progressDialog.setCancelable(false)
progressDialog.show()

super.onPostExecute(result)
handleJson(result)

if (progressDialog != null)
progressDialog.dismiss();

}

我有红线错误
classifier 'Context' dose not have a companion object , and thus must be initialized here
我需要添加进度对话框 xml 吗?

最佳答案

您需要像这样的 Context 实例 lateinit var context2 : Context 然后 context2 = container!!.context 在您的事件或 Fragment 方法中,只需将 context2 传递给 ProgressDialog

关于kotlin - 如何在 kotlin 中添加加载对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com