Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 如何根据数据本身的类别填充数据_Android_Retrofit2_Nestedrecyclerview - Fatal编程技术网

Android 如何根据数据本身的类别填充数据

Android 如何根据数据本身的类别填充数据,android,retrofit2,nestedrecyclerview,Android,Retrofit2,Nestedrecyclerview,我正在使用改装来根据其设备填充我的检查表活动。数据在json文件中 我确实尝试过这种方法来填充数据,但只要有类似的类别,它就会填充两次。例如{Equipment1,checklist1,date1,activity1},{Equipment1,checklist2,date2,activity2},它将用不同的检查表相应地填充Equipment1两次 下图显示了DP-03只应该出现一次的错误,并且这两个数据需要在一个cardview中 JSONObject obj=新的JSONObject(j

我正在使用改装来根据其设备填充我的检查表活动。数据在json文件中

我确实尝试过这种方法来填充数据,但只要有类似的类别,它就会填充两次。例如{Equipment1,checklist1,date1,activity1},{Equipment1,checklist2,date2,activity2},它将用不同的检查表相应地填充Equipment1两次

下图显示了DP-03只应该出现一次的错误,并且这两个数据需要在一个cardview中

JSONObject obj=新的JSONObject(jresponse);
字符串计数=obj.getString(“计数”);
如果(!(计数等于(“0”))
{
ArrayList sectionDataModelArrayList=新建ArrayList();
JSONArray dataArray=obj.getJSONArray(“全部”);

对于(int i=0;iYou可以使用hashMap,设备作为键,值作为列表,每次尝试更新键、值时,首先使用hashMap.get(设备1)检索现有列表,然后将新的检查表添加到该列表中,最后使用hashMap.put(设备1,更新的检查表)进行更新@schrodingers_cat16无法使用hashmap,因为不仅存在checkliast。还有大约5到6个Attributery首先将所有5-6个属性包装到捆绑数据模型中,然后使用hashmap?@schrodingers_cat16您能否提供一些示例,说明如何将hashmap填充到嵌套的recyclerview中
JSONObject obj = new JSONObject(jresponse);
String count = obj.getString("count");

if(!(count.equals("0")))
{


    ArrayList<SectionDataModel> sectionDataModelArrayList = new ArrayList<>();
    JSONArray dataArray = obj.getJSONArray("all");


    for (int i= 0; i<dataArray.length();i++)
    {
        SectionDataModel sectionDataModel = new SectionDataModel();
        SingleItemDataModel singleItemDataModel = new SingleItemDataModel();
        JSONObject dataobj = dataArray.getJSONObject(i);
        ArrayList<SingleItemDataModel> singleItemDataModelArrayList = new ArrayList<>();

        sectionDataModel.setEqpName(dataobj.getString("Equipment"));




            singleItemDataModel.setChecklist(dataobj.getString("Checklists"));
            singleItemDataModel.setActivity(dataobj.getString("Activity"));
            singleItemDataModel.setStatus(dataobj.getString("Status"));
            singleItemDataModel.setTime(dataobj.getString("Date"));

singleItemDataModelArrayList.add(singleItemDataModel);
        sectionDataModel.setDescription(singleItemDataModelArrayList);
        sectionDataModelArrayList.add(sectionDataModel);

     }

    // Create RecyclerView Adapter
    recyclerViewDataAdapter = new RecyclerViewDataAdapter(getContext(), sectionDataModelArrayList);

    // Create the recyclerview
    RecyclerView my_recycler_view = view.findViewById(R.id.my_recycler_view);
    my_recycler_view.setHasFixedSize(true);
    my_recycler_view.setAdapter(recyclerViewDataAdapter);
    my_recycler_view.setLayoutManager(new LinearLayoutManager(view.getContext(), LinearLayoutManager.VERTICAL, false));

}

else
    {
        Toast.makeText(getContext(), "no data", Toast.LENGTH_SHORT).show();

        final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

        //Set Title
        builder.setTitle("There is no data available");
        builder.setMessage("Please reselect again.");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        builder.show();
}
} catch (JSONException e) {
    e.printStackTrace();
}