Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收器视图未在kotlin中显示JSON数据_Android_Json_Kotlin_Android Recyclerview_Android Volley - Fatal编程技术网

Android 回收器视图未在kotlin中显示JSON数据

Android 回收器视图未在kotlin中显示JSON数据,android,json,kotlin,android-recyclerview,android-volley,Android,Json,Kotlin,Android Recyclerview,Android Volley,这是我的主课,我将使用截击在ArrayList中添加JASON数据。 Toast显示JASON数据,但数组不显示任何数据。我正在努力解决过去三天的错误。 我也读了很多关于stack的问题,但我对此没有解决方案,请帮助我 var item = ArrayList<dumy_item_list>() var url = "https://apps.faizeqamar.website/charity/api/organizations"

这是我的主课,我将使用截击在ArrayList中添加JASON数据。 Toast显示JASON数据,但数组不显示任何数据。我正在努力解决过去三天的错误。 我也读了很多关于stack的问题,但我对此没有解决方案,请帮助我

 var item = ArrayList<dumy_item_list>()
        var url = "https://apps.faizeqamar.website/charity/api/organizations"
        var rq: RequestQueue = Volley.newRequestQueue(this)
        var sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
            var jsonResponse = JSONObject(response)
            var jsonArray: JSONArray = jsonResponse.getJSONArray("data")
            for (i in 0..jsonArray.length() - 1) {
                var jsonObject: JSONObject = jsonArray.getJSONObject(i)
                var name = jsonObject.getString("name")
                val data = dumy_item_list()
                data.setName(jsonObject.getString(name))
                item.add(data)
                Toast.makeText(applicationContext, "NGO Name is : $name", Toast.LENGTH_LONG).show()
            }
        },
            Response.ErrorListener { error ->

                Toast.makeText(applicationContext, error.message, Toast.LENGTH_LONG).show()
            })

        rq.add(sr)
        var away_recycler = findViewById<RecyclerView>(R.id.away_recycler)

        var adaptor = custom_adopter(item, applicationContext)

        away_recycler.layoutManager = GridLayoutManager(applicationContext, 1)

        away_recycler.adapter = adaptor


    }
var item=ArrayList()
变量url=”https://apps.faizeqamar.website/charity/api/organizations"
var rq:RequestQueue=Volley.newRequestQueue(此)
var sr=StringRequest(Request.Method.GET、url、Response.Listener{Response->
var jsonResponse=JSONObject(响应)
var jsonArray:jsonArray=jsonResponse.getJSONArray(“数据”)
对于(i in 0..jsonArray.length()-1){
var jsonObject:jsonObject=jsonArray.getJSONObject(i)
var name=jsonObject.getString(“名称”)
val data=dumy_项目清单()
data.setName(jsonObject.getString(name))
项目.添加(数据)
Toast.makeText(applicationContext,“NGO名称为:$Name”,Toast.LENGTH\u LONG.show())
}
},
Response.ErrorListener{error->
Toast.makeText(applicationContext,error.message,Toast.LENGTH\u LONG.show())
})
rq.add(sr)
var away\u recycler=findViewById(R.id.away\u recycler)
var适配器=自定义应用程序(项目,applicationContext)
away\u recycler.layoutManager=GridLayoutManager(applicationContext,1)
away\u recycler.adapter=适配器
}
这是我使用getName()函数的适配器类

class custom_adopter(data: ArrayList<dumy_item_list>, var context: Context) :
    RecyclerView.Adapter<custom_adopter.viewHolder>() {
    var data: List<dumy_item_list>
    init {
        this.data = data
    }
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): custom_adopter.viewHolder {

        var layout = LayoutInflater.from(context).inflate(R.layout.dumy_item, parent, false)
        return viewHolder(layout)
    }
    override fun onBindViewHolder(holder: custom_adopter.viewHolder, position: Int) {
        holder.tv_dummy_name_donnor.text = data[position].getName()
        holder.card.setOnClickListener {
            var intent = Intent(context, ngosProfile::class.java)
            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
            startActivity(context, intent, null)
        }
    }
    override fun getItemCount(): Int {
        return data.size
    }
    class viewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        internal var tv_dummy_name_donnor: TextView
        internal var card: CardView
        init {
            tv_dummy_name_donnor = itemView.findViewById(R.id.tv_dummy_name_donnor)
            card = itemView.findViewById(R.id.card)
        }
    }
}
类自定义采纳器(数据:ArrayList,变量上下文:context):
RecyclerView.Adapter(){
var数据:列表
初始化{
this.data=数据
}
override fun onCreateViewHolder(父级:ViewGroup,viewType:Int):custom_adopter.viewHolder{
var layout=LayoutInflater.from(上下文)。充气(R.layout.dumy_项,父项,false)
返回视图保持器(布局)
}
覆盖BindViewHolder(holder:custom_adopter.viewHolder,位置:Int){
holder.tv\u dummy\u name\u donnor.text=data[position].getName()
holder.card.setOnClickListener{
var intent=intent(上下文,ngosProfile::class.java)
intent.flags=intent.FLAG\u活动\u新任务
startActivity(上下文、意图、空)
}
}
重写getItemCount():Int{
返回数据大小
}
类viewHolder(itemView:View):RecyclerView.viewHolder(itemView){
内部变量tv\u虚拟\u名称\u donnor:TextView
内部var卡:CardView
初始化{
tv\u dummy\u name\u donnor=itemView.findViewById(R.id.tv\u dummy\u name\u donnor)
card=itemView.findViewById(R.id.card)
}
}
}

我猜您的RecyclerView中包含所有项目,但它们是空的 因此,问题应该是您在哪里填写适配器列表..在下面这一行:

data.setName(jsonObject.getString(name))
一定是这样的

data.setName(name)


我猜你有一个包含所有项目的RecyclerView,但它们是空的 因此,问题应该是您在哪里填写适配器列表..在下面这一行:

data.setName(jsonObject.getString(name))
一定是这样的

data.setName(name)


在将数据加载到列表中后,您应该调用适配器的notifyDataSetChanged方法,以通知有新数据。

在将数据加载到列表中后,您应该调用适配器的notifyDataSetChanged方法,以通知有新数据。

遵循此代码,这对我来说很有用<代码>(var适配器=自定义采纳器(项目,应用上下文)
away\u recycler.adapter=适配器
progressBar2?.visibility=View.INVISIBLE)
在循环后将值签名给适配器

class MainActivity : AppCompatActivity() {

    var progressBar2:ProgressBar?=null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var item = ArrayList<dumy_item_list>()
        var progressBar2 = findViewById<ProgressBar>(R.id.progressBar2)
        var away_recycler = findViewById<RecyclerView>(R.id.away_recycler)
        away_recycler.layoutManager = GridLayoutManager(applicationContext, 1)

        var url = "https://apps.faizeqamar.website/charity/api/organizations"
        var rq: RequestQueue = Volley.newRequestQueue(this)

            var sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
                var jsonResponse = JSONObject(response)
                var jsonArray: JSONArray = jsonResponse.getJSONArray("data")
                for (i in 0..jsonArray.length() - 1) {
                    var jsonObject: JSONObject = jsonArray.getJSONObject(i)
                   var name = jsonObject.getString("ngo_name")
                   var about = jsonObject.getString("ngo_desc")
                    item.add(dumy_item_list(name,about))


                }
                var adaptor = custom_adopter(item, applicationContext)
                away_recycler.adapter = adaptor
                progressBar2?.visibility = View.INVISIBLE



            },
                Response.ErrorListener { error ->

                })

            rq.add(sr)

        }
class MainActivity:AppCompatActivity(){
变量progressBar2:ProgressBar?=null
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var item=ArrayList()
var progressBar2=findViewById(R.id.progressBar2)
var away\u recycler=findViewById(R.id.away\u recycler)
away\u recycler.layoutManager=GridLayoutManager(applicationContext,1)
变量url=”https://apps.faizeqamar.website/charity/api/organizations"
var rq:RequestQueue=Volley.newRequestQueue(此)
var sr=StringRequest(Request.Method.GET、url、Response.Listener{Response->
var jsonResponse=JSONObject(响应)
var jsonArray:jsonArray=jsonResponse.getJSONArray(“数据”)
对于(i in 0..jsonArray.length()-1){
var jsonObject:jsonObject=jsonArray.getJSONObject(i)
var name=jsonObject.getString(“ngo_名称”)
var about=jsonObject.getString(“ngo_desc”)
添加(dumy_项目列表(名称,关于))
}
var适配器=自定义应用程序(项目,applicationContext)
away\u recycler.adapter=适配器
progressBar2?可见性=视图不可见
},
Response.ErrorListener{error->
})
rq.add(sr)
}

遵循此代码为我完成此工作。
(var adapter=custom\u adopter(item,applicationContext)
away\u recycler.adapter=adapter
progressBar2?.visibility=View.INVISIBLE)
在循环后将值签名给adapter

class MainActivity : AppCompatActivity() {

    var progressBar2:ProgressBar?=null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var item = ArrayList<dumy_item_list>()
        var progressBar2 = findViewById<ProgressBar>(R.id.progressBar2)
        var away_recycler = findViewById<RecyclerView>(R.id.away_recycler)
        away_recycler.layoutManager = GridLayoutManager(applicationContext, 1)

        var url = "https://apps.faizeqamar.website/charity/api/organizations"
        var rq: RequestQueue = Volley.newRequestQueue(this)

            var sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
                var jsonResponse = JSONObject(response)
                var jsonArray: JSONArray = jsonResponse.getJSONArray("data")
                for (i in 0..jsonArray.length() - 1) {
                    var jsonObject: JSONObject = jsonArray.getJSONObject(i)
                   var name = jsonObject.getString("ngo_name")
                   var about = jsonObject.getString("ngo_desc")
                    item.add(dumy_item_list(name,about))


                }
                var adaptor = custom_adopter(item, applicationContext)
                away_recycler.adapter = adaptor
                progressBar2?.visibility = View.INVISIBLE



            },
                Response.ErrorListener { error ->

                })

            rq.add(sr)

        }
class MainActivity:AppCompatActivity(){
变量progressBar2:ProgressBar?=null
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var item=ArrayList()
var progressBar2=findViewById(R.id.progressBar2)
var away\u recycler=findViewById(R.id.away\u recycler)
away\u recycler.layoutManager=GridLayoutManager(a