У меня есть приложение «Создание просмотров с помощью вкладок» в моем приложении, и я использую список для моих данных. мое приложение работает нормально, но проблема в том, что когда я запускаю ланч-приложение, я получаю пустую активность.
Как вы можете видеть ниже, это класс java, где я выполняю операции на вкладках.
Основная деятельность:
package com.iraqairoirt.iraqairports
import android.os.AsyncTask
import android.os.Bundle
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ListView
import kotlinx.android.synthetic.*
import kotlinx.android.synthetic.main.fragment_dep.*
import org.json.JSONArray
import org.json.JSONObject
import java.net.HttpURLConnection
import java.net.URL
class fragment_Dep :Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_dep,container,false)
val url = "xxxxxxxxxxxxxxxxxxx"
Download().execute(url)
}
// full class for json api
inner class Download : 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?) {
super.onPostExecute(result)
handleJson(result)
}
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("arrivals")
// 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").getString("callsign"),
jsonObject.getJSONObject("flight").getJSONObject("identification").getJSONObject("number").getString("default")
))
x++
}
val adapter = ListAdapte(this@fragment_Dep,list)
flightShdu_list.adapter = adapter
}
// for get items from json api
override fun onProgressUpdate(vararg values: String?) {
}
}
}
ListAdapte
package com.iraqairoirt.iraqairports
import android.annotation.SuppressLint
import android.support.v7.widget.AppCompatTextView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
class ListAdapte (val context: fragment_Dep, val list: ArrayList<FlightShdu>): BaseAdapter() {
@SuppressLint("ViewHolder")
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val view : View = LayoutInflater.from(context.context).inflate(R.layout.row_layout,parent,false)
val CallsingID = view.findViewById(R.id.callsign_id) as AppCompatTextView
val StatusID = view.findViewById(R.id.status_id) as AppCompatTextView
CallsingID.text = list[position].Callsign.toString()
StatusID.text = list[position].Status
return view
}
override fun getItem(position: Int): Any {
return list [position]
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getCount(): Int {
return list.size
}
}
При открытии фрагмента с помощью ListView появляется какое-либо пустое окно?