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