Android扩展双等级

时间:2016-03-29 17:26:30

标签: android extends

我有我的类适配器,我需要访问两个类!然后,我可以将public class JSONAdapter extends ArrayAdapter<Voiture> {放入我的班级&#34; Voiture&#34;但是我需要在我的课堂上加入#34; Moniteur&#34;我也不能这样说:

public class JSONAdapter extends ArrayAdapter<Voiture>,ArrayAdapter<Moniteur> {

我需要查看班级的属性&#34; Voiture&#34;和&#34; Moniteur&#34; ...

请问有解决方案吗?谢谢

编辑:好的,谢谢你,这是我班级VOITURE的代码:

public class Voiture {

private int idV = -1; // permet de voir si le parent est enregistré dans la BDD
private String marqueV;
private String dateAchatV;
private String PlaqueImmatriculationV;


public Voiture(String marqueV, String plaqueImmatriculationV) {
    this.marqueV = marqueV;
    PlaqueImmatriculationV = plaqueImmatriculationV;
}

public Voiture(JSONAdapter jsonAdapter) {
    this.marqueV = marqueV;

    this.PlaqueImmatriculationV = PlaqueImmatriculationV;

}



public int getIdV() {
    return idV;
}

public void setIdV(int idV) {
    this.idV = idV;
}

public String getMarqueV() {
    return marqueV;
}

public void setMarqueV(String marqueV) {
    this.marqueV = marqueV;
}

public String getDateAchatV() {
    return dateAchatV;
}

public void setDateAchatV(String dateAchatV) {
    this.dateAchatV = dateAchatV;
}

public String getPlaqueImmatriculationV() {
    return PlaqueImmatriculationV;
}

public void setPlaqueImmatriculationV(String plaqueImmatriculationV) {
    PlaqueImmatriculationV = plaqueImmatriculationV;
}

}

这是我的班级Moniteur的代码:

public class Moniteur {

private int idM;
private String nomM;
private String prenomM;
private String adresseM;
private String telephoneM;

public Moniteur(String nomM, String prenomM,String adresseM,String telephoneM) {
    this.nomM = nomM;
    this.prenomM = prenomM;
    this.adresseM = adresseM;
    this.telephoneM = telephoneM;
}



public int getIdM() { return idM; }

public void setIdM(int idM) { this.idM = idM; }

public String getNomM() {
    return nomM;
}

public void setNomM(String nomM) {
    this.nomM = nomM;
}

public String getPrenomM() {
    return prenomM;
}

public void setPrenomM(String prenomM) {
    this.prenomM = prenomM;
}

public String getAdresseM() {
    return adresseM;
}

public void setAdresseM(String adresseM) {
    this.adresseM = adresseM;
}

public String getTelephoneM() {
    return telephoneM;
}

public void setTelephoneM(String telephoneM) {
    this.telephoneM = telephoneM;
}

}

2 个答案:

答案 0 :(得分:0)

这两个类的目的以及它们之间的关系并不清楚,但是如果你想将它们存储在一个容器中(这是你想要做的),你需要在它们之间定义一个公共接口。 (或抽象类)。我不会说法语,所以你会更容易创造一个好名字。

我建议创建一个界面:

public interface AbstractItem
{
    //TODO define common functions in this class
}

然后在你的类中实现这个接口:

public class Voiture implements AbstractItem
{ ... }

public class Moniteur implements AbstractItem
{ ... }

然后,您可以创建一个包含这两个项目的数组适配器:

public class JSONAdapter extends ArrayAdapter<AbstractItem> 
{ ... }

答案 1 :(得分:0)

如果我理解正确,&#34; Voiture&#34;意思是&#34; car&#34;和&#34; Moniteur&#34;意味着&#34;讲师&#34;或&#34;老师&#34;。

所以,听起来你正在实施一种&#34;驾驶学校&#34;那里有老师用他们使用/驾驶的汽车。

如果是这种情况,您实际上只需要一个ArrayAdapter<Monituer>,就可以像这样实现Moniteur类。

public class Moniteur {
    private List<Voiture> voitures;

    public Monituer() {
        voitures = new ArrayList<Voiture>();
    }

    public void ajouterVoiture(Voiture v) {
        voitures.add(v);
    }

    public List<Voiture> obtientVoitures() {
       return voitures;
    }

}

或许我不明白试图在适配器中显示的是什么。在这种情况下,请随时在下面发表评论。