Относительно Api Kotlin Android Studio - PullRequest
0 голосов
/ 14 сентября 2018

Хочу получить данные от https://www.thesportsdb.com/api/v1/json/1/eventspastleague.php?id=4328

Но у меня есть ошибка

java.lang.IllegalArgumentException: параметр, указанный как ненулевой, null: метод kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, данные параметров в com.yutra.jadwalbola.last_match.LastMatchFragment.showTeamList (Неизвестно Источник: 21) в com.yutra.jadwalbola.last_match.LastMatchPresenter $ getTeamList $ 1 $ 1.invoke (LastMatchPresenter.kt: 21) в com.yutra.jadwalbola.last_match.LastMatchPresenter $ getTeamList $ 1 $ 1.invoke (LastMatchPresenter.kt: 8)

Почему данные нулевые?

это мой LastMatchDBApi

    object LastMatchDBApi {
    fun getMatch(): String {
        return Uri.parse(BuildConfig.BASE_URL).buildUpon()
                .appendPath("api")
                .appendPath("v1")
                .appendPath("json")
                .appendPath(BuildConfig.TSDB_API_KEY)
                .appendPath("eventspastleague.php")
                .appendQueryParameter("id", "4328")
                .build()
                .toString()
    }
}

это мой сериализованный

   data class LastMatch(

        @SerializedName("strEvent")
        var eventName: String? = null    
)

это мой ведущий

 class LastMatchPresenter(private val view: MainView,
                         private val apiRepository: ApiRepository,
                         private val gson: Gson) {
    fun getTeamList() {
        view.showLoading()
        doAsync {
            val data = gson.fromJson(apiRepository
                    .doRequest(LastMatchDBApi.getMatch()),
                    LastMatchResponse::class.java
            )

            uiThread {
                view.hideLoading()
                view.showTeamList(data.lastMatch)
            }
        }
    }
}

это мой ответ

 data class LastMatchResponse(
        val lastMatch: List<LastMatch>
)

это мой фрагмент активности

class LastMatchFragment : Fragment(), MainView {
    private lateinit var progressBar: ProgressBar
    private lateinit var swipeRefresh: SwipeRefreshLayout
    private var lastMatch: MutableList<LastMatch> = mutableListOf()
    private lateinit var adapter: MainAdapter
    private lateinit var listTeam: RecyclerView

    private var key : String = "4328"
    companion object {
        fun newInstance(): LastMatchFragment {
            return LastMatchFragment()
        }
    }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        val view = UI {
             linearLayout {
                lparams (width = matchParent, height = wrapContent)
                orientation = LinearLayout.VERTICAL
                topPadding = dip(16)
                leftPadding = dip(16)
                rightPadding = dip(16)

//                 textView {
//                     text = "test image"
//                 }
                 relativeLayout{
                     lparams (width = matchParent, height = wrapContent)

                  listTeam = recyclerView {
                         lparams (width = matchParent, height = wrapContent)
                         layoutManager = LinearLayoutManager(ctx)
                     }

                     progressBar = progressBar {
                     }.lparams{
                         centerHorizontally()
                     }
                 }
            }
        }.view
        adapter = MainAdapter(lastMatch)
        listTeam.adapter = adapter

        val request = ApiRepository()
        val gson = Gson()
       var presenter = LastMatchPresenter(this, request, gson)

            presenter.getTeamList()

        return view
    }

    override fun showLoading() {
        progressBar.visible()
    }

    override fun hideLoading() {
        progressBar.invisible()
    }



    override fun showTeamList(data: List<LastMatch>) {
        lastMatch.clear()
        lastMatch.addAll(data)
        adapter.notifyDataSetChanged()
    }

}

Если у кого-нибудь есть sourcode для получения этих данных, пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Я должен решить это. Я должен неправильно переименовать список массивов

0 голосов
/ 15 сентября 2018

Инициировать компоненты пользовательского интерфейса в

override fun onViewCreated(view: View, savedInstanceState: Bundle?)

Поскольку OnViewCreate загружает фрагмент, и вторым методом для выполнения является onCreatedView.

Удачи!

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