您需要这样的Context实例lateinit var context2:上下文然后在您的活动或Fragment方法中使用context2 = container !!。context并通过ProgressDialog传递context2
我尝试在我的应用程序加载数据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?) { } }
[l
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吗?
我试图在我的应用程序加载数据json url时添加加载对话框,因为在午餐应用程序时显示空白屏幕,直到数据出现。这是内部内部代码Dep:AsyncTask 您需要这样的Context实例lateinit var context2:上下文然后在您的活动或Fragment方法中使用context2 = container !!。context并通过ProgressDialog传递context2
您需要这样的Context实例lateinit var context2:上下文然后在您的活动或Fragment方法中使用context2 = container !!。context并通过ProgressDialog传递context2