【问题标题】:i want show all of my data in a recyclerview我想在回收站视图中显示我的所有数据
【发布时间】:2020-10-28 12:47:53
【问题描述】:

也许我的问题是初学者 我有这个 JSON,作为响应,我发布了一个“id”,结果就是这样,你可以看到我的响应以方括号 [] 开头,我无法更改它

[{
    "id": "1111",
    "nam": "name",
    "namk": "surename",
    "lygn": [{
                "id": "3003",
                "mas": "lurem11",               
                "yeg": "lurem11"
            },
            {
                "id": "5121",
                "mas": "lurem",
                "yeg": "lurem"
            }],
    "lisar": [
        {
            "id": "3",
            "sharh": "lurem22",
            "amal": "lurem22",
            "toz": "1",
            "tb": "1"
        },
        {
            "id": "2113",
            "sharh": "0",
            "amal": "lurem",
            "toz",
            "tb": "1965/06/11"
        }
    ]
}]

这是我的要求:

@POST("isargaran")
    @Headers({"Content-Type: application/json"})
    Call<List<ForAll>> postbyid(@Body ForAll md);    

我的模型类是:

public class ForAll {
    @SerializedName("id")
    @Expose
    private String id;
    @SerializedName("nam")
    @Expose
    private String nam;
    @SerializedName("namk")
    @Expose
    private String namk;
    @SerializedName("namp")
    @Expose
    private String namp;
   
    @SerializedName("lygn")
    @Expose
    public List<Ygn> ygn = null;

    @SerializedName("lisar")
    @Expose
    public List<lisar> lisar;

  //getter and setter 

}

我也有“lisar”和“Ygn”类,到目前为止没有问题,因为我得到了 Response.body 和一切都很好(我使用了我所有的吸气剂,然后我在 textview 中显示)但事情是我想在recyclerview中展示它们,我试过了,我只能看到索引0,看不到所有这些,我的意思是我只能看到(lygn)

{
                "id": "3003",
                "mas": "lurem",               
                "yeg": "lurem"
            }

(以及“lisar”的第一个数据)

我不想分享我的适配器并让它在这里拥挤,我的问题是,我如何在 RECYCLERVIEW 中显示我的“lygn”和“lisar”(我每个都有一个回收器) 谢谢各位,请帮帮我

** 我认为问题是因为我的回复以 []

开头

【问题讨论】:

  • 你是如何解析你的响应 json 的?
  • @sneharc ForAll result = forAlls.get(position); ... result.getLisar().get(position).getTb() 在我的适配器中对不起,如果我弄错了,女士
  • @sneharc 它帮不了我我的应用程序中有其他回收器可以显示所有数据(正是我想要的,我的意思是我知道如何将适配器用于简单的 json,例如那些 json链接),但我的问题是这些列表(“lygn”和“lisar”)“无论如何谢谢你????

标签: java android json retrofit2


【解决方案1】:

首先,你需要分开响应

ForAll resource = response.get(0);

现在你需要在回收器视图适配器中传递单独的数据

List<Ygn> lygnData = resource.getygn();
List<lisar> lisarData = resource.getlisar();

【讨论】:

  • 我知道,但我仍然有一个数据,无法显示所有数据
  • 你能和我分享你的适配器类吗?所以我给你一个快速的解决方案。
  • 适配器中设置了哪个数组大小? @Override public int getItemCount() { return modelArrayList.size(); }
  • 我做到了,我返回 modelArrayList.size();但我只有索引 0
【解决方案2】:

像这样使用 recyclerview 设置适配器,

//Pass your list in to adapter   
var adapter = RecyclerViewAdapter(list)
recyclerView.layoutManager = LinearLayoutManager(context)
recyclerView.adapter = pendingAdapter

这是你的适配器类,

 class RecyclerViewAdapter(
        private val list: List<String>
    ) : RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>() {
    
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
            val v = LayoutInflater.from(parent.context).inflate(R.layout.row, parent, false)   // pass your row (.xml) Here
            return ViewHolder(v)
        }
    
        override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            // Bind Your Data Here
        }
    
        override fun getItemCount(): Int {
            return list.size
        }
    
        class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 2021-10-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2020-06-06
    相关资源
    最近更新 更多