Просмотр списка не работает должным образом на android - PullRequest
0 голосов
/ 20 июня 2020

У меня есть список, в котором отображается список рецептов этого класса «Мне здесь не нужна вся информация»

private int Id;
private int Doctor_Id;
private String Note;
private String Prescription_Date;
private int Classification_Id;
private String Classification_Name;
private String Condition;
private String ClassificationIconUrl;
private String Patient_Name;
private List<Medicins> medicins;

public Prescriptions(int id, int doctor_Id, String note, String prescription_Date, int classification_Id, String classification_Name, String condition, String classificationIconUrl, String patient_Name, List<Medicins> medicins) {
    Id = id;
    Doctor_Id = doctor_Id;
    Note = note;
    Prescription_Date = prescription_Date;
    Classification_Id = classification_Id;
    Classification_Name = classification_Name;
    Condition = condition;
    ClassificationIconUrl = classificationIconUrl;
    Patient_Name = patient_Name;
    this.medicins = medicins;
}

public int getDoctor_Id() {
    return Doctor_Id;
}

public String getCondition() {
    return Condition;
}

public int getDoctorId() {
    return Doctor_Id;
}
public int getId() {
    return Id;
}

public String getNote() {
    return Note;
}

public String getPrescription_Date() {
    return Prescription_Date;
}

public int getClassification_Id() {
    return Classification_Id;
}

public String getClassification_Name() {
    return Classification_Name;
}

public String getClassificationIconUrl() {
    return ClassificationIconUrl;
}

public String getPatient_Name() {
    return Patient_Name;
}

public List<Medicins> getMedicins() {
    return medicins;
}

и в каждом объекте рецепта есть список лекарств этого класса

private String Name;
private String IsBold;
private String IsChronic;
private Integer Pharmacy_Id=null;

public Medicins(String name, String isBold, String isChronic, Integer pharmacy_Id) {
    Name = name;
    IsBold = isBold;
    IsChronic = isChronic;
    Pharmacy_Id = pharmacy_Id;
}

public String getName() {
    return Name;
}

public String getIsBold() {
    return IsBold;
}

public String getIsChronic() {
    return IsChronic;
}

public Integer getPharmacy_Id() {
    return Pharmacy_Id;
}

, поэтому я сделал этот адаптер для представления этой информации в виде списка

private int resLayout;
private Context context;
private List<Prescriptions> prescList;

public PrescAdapter(Context context,int res,List<Prescriptions> preList){
    super(context,res,preList);
    this.context=context;
    this.prescList=preList;
    this.resLayout=res;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    View v=convertView;
    if(v==null){
        LayoutInflater vi;
        vi = LayoutInflater.from(context);
        v = vi.inflate(resLayout, null);
    }
    Prescriptions Item=prescList.get(position);
    if(Item!=null)
    {

        TextView Note=v.findViewById(R.id.noteTxt);
        TextView boldMed=v.findViewById(R.id.boldMedTxt);
        TextView med=v.findViewById(R.id.medi);
        TextView Date =v.findViewById(R.id.dateTxt);
        Note.setText(Item.getCondition());
        Date.setText(Item.getPrescription_Date());
        ImageView photo =v.findViewById(R.id.speImg);
        photo.setBackgroundResource(getImage(Item.getClassification_Name()));
        List<Medicins> medicins=Item.getMedicins();
        for (Medicins m:medicins) {

            if(m.getIsBold().equals("1"))boldMed.setText(boldMed.getText().toString()+"\n"+m.getName());
            else med.setText(boldMed.getText().toString()+"\n"+m.getName());
        }

    }
    return v;
}

public int getImage(String c){
    int v;
    switch (c){
        case "Eye":v=R.drawable.ic_eye;break;
        case "Ear":v=R.drawable.ic_ear;break;
        case"Brain":v=R.drawable.ic_brain;break;
        case"Sex":v=R.drawable.ic_sex;break;
        case"Kidney":v=R.drawable.ic_kidney;break;
        case"Stomach":v=R.drawable.ic_stomach;break;
        case"Tooth":v=R.drawable.ic_tooth;break;
        case"Lungs":v=R.drawable.ic_lungs;break;
        case"Gland":v=R.drawable.ic_gland;break;
        case"Heart":v=R.drawable.ic_heart;break;
        case"Skin":v=R.drawable.ic_skin;break;
        case"Bone":v=R.drawable.ic_bone2;break;
        default:v=0;break;
    }
    return v;

в представлении постоянно отображаются лекарства случайным образом и метод получения представления вызывается трижды для одного и того же товара

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...