Я использую модификацию, чтобы заполнить свой контрольный список в соответствии с его оборудованием. Данные находятся в файле JSON.
Я пробовал этот метод для заполнения данных, но всякий раз, когда есть подобная категория, она будет заполняться дважды. Например, {Оборудование1, контрольный список1, дата1, действие1}, {Оборудование1, контрольный список2, дата2, действие2}, оно дважды заполнит Оборудование1 другим контрольным списком соответственно.
На изображении ниже показана ошибка, из-за которой DP-03 должен выходить только один раз, и эти две данные должны быть в одном просмотре карты.
Просмотр карты Recycler
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();
}