просмотр списка не отображается во вкладке Активность kotlin - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть приложение «Создание просмотров с помощью вкладок» в моем приложении, и я использую список для моих данных. мое приложение работает нормально, но проблема в том, что когда я запускаю ланч-приложение, я получаю пустую активность.

Как вы можете видеть ниже, это класс 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 появляется какое-либо пустое окно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...