Android 应用程序崩溃(未连接适配器;跳过布局)(Kotlin)

Android 应用程序崩溃(未连接适配器;跳过布局)(Kotlin),android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,这是我的代码,应用程序正在一次又一次地崩溃 package com.example.bookhub.adapter.fragment import android.app.AlertDialog import android.app.DownloadManager import android.content.Context import android.os.Bundle import androidx.fragment.app.Fragment import android.view.La

这是我的代码,应用程序正在一次又一次地崩溃

package com.example.bookhub.adapter.fragment

import android.app.AlertDialog
import android.app.DownloadManager
import android.content.Context
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.textclassifier.TextClassification
import android.widget.Button
import android.widget.Toast
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.android.volley.Request
import com.android.volley.Response
import com.android.volley.toolbox.JsonObjectRequest
import com.android.volley.toolbox.Volley
import com.example.bookhub.R
import com.example.bookhub.adapter.adapter.DasboardRecyclerAdapter
import com.example.bookhub.adapter.model.Book
import com.example.bookhub.adapter.util.ConnectionManager


class dashboardFragment : Fragment() {
    lateinit var recyclerDashboard: RecyclerView
    lateinit var layoutManager: RecyclerView.LayoutManager
    lateinit var btnCheckInternet: Button


    lateinit var recyclerAdapter: DasboardRecyclerAdapter
    lateinit var bookInfoList: ArrayList<Book>
    /*  var bookInfoList = arrayListOf<Book>(
          Book("P.S. I love You", "Cecelia Ahern", "Rs. 299", "4.5", 77777,777),
          Book("The Great Gatsby", "F. Scott Fitzgerald", "Rs. 399", "4.1", R.drawable.great_gatsby),
          Book("Anna Karenina", "Leo Tolstoy", "Rs. 199", "4.3", R.drawable.anna_kare),
          Book("Madame Bovary", "Gustave Flaubert", "Rs. 500", "4.0", R.drawable.madame),
          Book("War and Peace", "Leo Tolstoy", "Rs. 249", "4.8", R.drawable.war_and_peace),
          Book("Lolita", "Vladimir Nabokov", "Rs. 349", "3.9", R.drawable.lolita),
          Book("Middlemarch", "George Eliot", "Rs. 599", "4.2", R.drawable.middlemarch),
          Book("The Adventures of Huckleberry Finn", "Mark Twain", "Rs. 699", "4.5", R.drawable.adventures_finn),
          Book("Moby-Dick", "Herman Melville", "Rs. 499", "4.5", R.drawable.moby_dick),
          Book("The Lord of the Rings", "J.R.R Tolkien", "Rs. 749", "5.0", R.drawable.lord_of_rings)
      )*/

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this com.example.bookhub.com.example.bookhub.adapter.adapter.fragment
        val view = inflater.inflate(R.layout.fragment_dashboard, container, false)



        recyclerDashboard = view.findViewById(R.id.recylerDashboard)



        btnCheckInternet = view.findViewById(R.id.btnCheckInternet)
        btnCheckInternet.setOnClickListener {
            if (ConnectionManager().checkConnectivity(activity as Context)) {
                //internet is available
                val dialog = AlertDialog.Builder(activity as Context)
                dialog.setTitle("Success")
                dialog.setMessage("Internet Connection Found")
                dialog.setPositiveButton("Ok") { text, listner ->

                }
                dialog.setNegativeButton("Cancel") { text, listner ->

                }

                dialog.create()
                dialog.show()

            } else {
                //internet not available
                val dialog = AlertDialog.Builder(activity as Context)
                dialog.setTitle("Error")
                dialog.setMessage("Internet Connection Not Found")
                dialog.setPositiveButton("Ok") { text, listner ->

                }
                dialog.setNegativeButton("Cancel") { text, listner ->

                }

                dialog.create()
                dialog.show()
            }
        }

        layoutManager = LinearLayoutManager(activity)


        val queue = Volley.newRequestQueue(activity as Context)

        val url = "http://13.235.250.119/v1/book/fetch_books/"

        val jsonObjectRequest =
            object : JsonObjectRequest(Request.Method.GET, url, null, Response.Listener {
                // Here we will handle the respose
                val success = it.getBoolean("success")
                if (success) {
                    val data = it.getJSONArray("data")
                    for (i in 0 until data.length()) {
                        val bookJsonObject = data.getJSONObject(i)
                        val bookObject = Book(
                            bookJsonObject.getString("book_id"),
                            bookJsonObject.getString("name"),
                            bookJsonObject.getString("author"),
                            bookJsonObject.getString("rating"),
                            bookJsonObject.getString("price"),
                            bookJsonObject.getString("image")

                        )
                        bookInfoList.add(bookObject)
                        recyclerAdapter = DasboardRecyclerAdapter(activity as Context, bookInfoList)

                        recyclerDashboard.adapter = recyclerAdapter
                        recyclerDashboard.layoutManager = layoutManager

                        recyclerDashboard.addItemDecoration(
                            DividerItemDecoration(
                                recyclerDashboard.context,
                                (layoutManager as LinearLayoutManager).orientation
                            )
                        )


                    }


                } else  {
                    Toast.makeText(activity as Context, "Some ERROR OCCURED", Toast.LENGTH_SHORT).show()
                }


            }, Response.ErrorListener {
                // here we handel the error
                println("Error is $it")

            }) {

                override fun getHeaders(): MutableMap<String, String> {
                    val headers = HashMap<String, String>()
                    headers["Content-type"] = "application/json"
                    headers["token"] = "fe******8a1ec7"
                    return headers
                }

            }

        queue.add(jsonObjectRequest)


        return view
    }


}
package com.example.bookhub.adapter.fragment
导入android.app.AlertDialog
导入android.app.DownloadManager
导入android.content.Context
导入android.os.Bundle
导入androidx.fragment.app.fragment
导入android.view.LayoutInflater
导入android.view.view
导入android.view.ViewGroup
导入android.view.textclassifier.TextClassification
导入android.widget.Button
导入android.widget.Toast
导入androidx.recyclerview.widget.DividerItemDecoration
导入androidx.recyclerview.widget.LinearLayoutManager
导入androidx.recyclerview.widget.recyclerview
导入com.android.volley.Request
导入com.android.volley.Response
导入com.android.volley.toolbox.JsonObjectRequest
导入com.android.volley.toolbox.volley
导入com.example.bookhub.R
导入com.example.bookhub.adapter.adapter.DasboardRecyclerAdapter
导入com.example.bookhub.adapter.model.Book
导入com.example.bookhub.adapter.util.ConnectionManager
类dashboardFragment:Fragment(){
lateinit var recyclerDashboard:RecyclerView
lateinit var layoutManager:RecyclerView.layoutManager
lateinit var btnCheckInternet:按钮
lateinit var回收适配器:DasboardRecyclerAdapter
lateinit var bookInfoList:ArrayList
/*var bookInfoList=arrayListOf(
书(“P.S.我爱你”,“塞西莉亚·埃亨”,“Rs.299”,“4.5”,7777),
书(《了不起的盖茨比》,《F.斯科特·菲茨杰拉德》,《Rs.399》,《4.1》,《R.drawable》,《了不起的盖茨比》),
书(“安娜·卡列尼娜”,“列夫·托尔斯泰”,“Rs.199”,“4.3”,R.drawable.Anna_kare),
书(“包法利夫人”、“古斯塔夫·福楼拜”、“Rs.500”、“4.0”、R.drawable.Madame),
书(《战争与和平》,《列夫·托尔斯泰》,《249卢比》,《4.8卢比》,《战争与和平》),
书(“洛丽塔”,“弗拉基米尔·纳博科夫”,“Rs.349”,“3.9”,R.drawable.Lolita),
书(“米德尔马奇”、“乔治·艾略特”、“599卢比”、“4.2卢比”、“可画的米德尔马奇卢比”),
书(《哈克贝利·费恩历险记》、《马克·吐温》、《Rs.699》、《4.5》、R.drawable.Adventures_Finn》),
书(《白鲸记》、《赫尔曼·梅尔维尔》、《499卢比》、《4.5卢比》、《白鲸记》),
书(“指环王”,“J.R.R托尔金”,“Rs.749”,“5.0”,R.drawable.指环王)
)*/
覆盖创建视图(
充气器:布局充气器,容器:视图组?,
savedInstanceState:捆绑?
):查看{
//为此com.example.bookhub.com.example.bookhub.adapter.adapter.fragment展开布局
val视图=充气机。充气(R.layout.fragment_仪表板,容器,错误)
recyclerDashboard=view.findViewById(R.id.recylerDashboard)
btnCheckInternet=view.findViewById(R.id.btnCheckInternet)
btnCheckInternet.setOnClickListener{
if(ConnectionManager().checkConnectivity(活动作为上下文)){
//互联网是可用的
val dialog=AlertDialog.Builder(活动作为上下文)
dialog.setTitle(“成功”)
dialog.setMessage(“找到Internet连接”)
setPositiveButton(“Ok”){text,listner->
}
setNegativeButton(“取消”){text,listner->
}
dialog.create()
dialog.show()
}否则{
//互联网不可用
val dialog=AlertDialog.Builder(活动作为上下文)
对话框.setTitle(“错误”)
对话框.setMessage(“未找到Internet连接”)
setPositiveButton(“Ok”){text,listner->
}
setNegativeButton(“取消”){text,listner->
}
dialog.create()
dialog.show()
}
}
layoutManager=LinearLayoutManager(活动)
val queue=Volley.newRequestQueue(活动作为上下文)
val url=”http://13.235.250.119/v1/book/fetch_books/"
val JSONObject请求=
对象:JsonObjectRequest(Request.Method.GET、url、null、Response.Listener{
//在这里,我们将处理响应
val success=it.getBoolean(“成功”)
如果(成功){
val data=it.getJSONArray(“数据”)
for(在data.length()之前0中的i){
val bookJsonObject=data.getJSONObject(i)
val bookObject=Book(
bookJsonObject.getString(“book_id”),
bookJsonObject.getString(“名称”),
bookJsonObject.getString(“作者”),
bookJsonObject.getString(“评级”),
bookJsonObject.getString(“价格”),
bookJsonObject.getString(“图像”)
)
bookInfoList.add(bookObject)
recyclerAdapter=DasboardRecyclerAdapter(活动作为上下文,bookInfoList)
recyclerDashboard.adapter=recyclerAdapter
recyclerDashboard.layoutManager=layoutManager
回收板。附加装饰(
分割(
recyclerDashboard.context,
(layoutManager作为LinearLayoutManager)。定位
)
)
}
}否则{
Toast.makeText(活动作为上下文,“发生了一些错误”,Toast.LENGTH\u SHORT.show()
}
},Response.ErrorListener{
//这里我们来处理这个错误
println(“错误为$it”)
}) {
重写fun getHeaders():MutableMap{
val headers=HashMap()
标题[“内容类型”]=“应用程序”
recyclerDashboard.layoutManager = layoutManager
recyclerDashboard.addItemDecoration(
                            DividerItemDecoration(
                                recyclerDashboard.context,
                                (layoutManager as LinearLayoutManager).orientation
                            )
                        )
recyclerAdapter = DasboardRecyclerAdapter(activity as Context, bookInfoList)
recyclerDashboard.adapter = recyclerAdapter
 override fun getItemCount(): Int {
    return bookInfoList.size // your data size
}