繁体   English   中英

关于Api Kotlin android Studio

[英]Regarding Api Kotlin android Studio

我想从https://www.thesportsdb.com/api/v1/json/1/eventspastleague.php?id=4328获取数据

但是我有错误

java.lang.IllegalArgumentException:指定为非null的参数为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来获取此数据,请帮助我

在中初始化UI组件

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

因为OnViewCreate已加载片段,第二个要执行的方法是onCreatedView。

祝好运!

我必须解决它。 我必须错误地重命名数组列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM