ArrayAdapter与类

时间:2015-10-27 00:58:18

标签: java android arraylist android-arrayadapter

所以,伙计们,在我的项目中,我使用自定义listView,并且起初我只传递给适配器字符串,但现在我想要通过类' s,因为我想传递更多信息。但我不知道为什么它不会让我失望! 这是我的带有字符串的适配器:

class costum_adapter extends ArrayAdapter<String>{

    public costum_adapter(Context context, ArrayList<String> horarios) {
        super(context, R.layout.costum_listview ,horarios);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater horarioInflater = LayoutInflater.from(getContext());
        View costumView = horarioInflater.inflate(R.layout.costum_listview, parent, false);

        String singleHorario = getItem(position);
        TextView hora = (TextView) costumView.findViewById(R.id.Hora);
        TextView nota = (TextView) costumView.findViewById(R.id.Nota);

        hora.setText(singleHorario);
        nota.setText(" ");

        return costumView;
    }
}

现在,我认为为了接收课程,我只需要更改参数,ArrayList horarios我将更改为ArrayList horarios。 &#34; horario&#34;是我的班级,在这里:

public class horario{
    public String hora;
    public int destino;
    public int note;

    public horario(String horaIn, int Destino, int Nota){
        hora = horaIn;
        destino = Destino;
        note = Nota;
    }
}

我也使用ArrayList。但是我用类中的对象填充了ArrayList。 当我尝试更改适配器上的参数以接收我的课程时,它不会识别它,我开始输入&#34; horario&#34;但它没有被识别,我不知道为什么,因为我在另一个文件中有这个类。

3 个答案:

答案 0 :(得分:0)

试试这样:

class costum_adapter extends ArrayAdapter<horario> {

 public costum_adapter(Context context, ArrayList<horario> horarios) {
 super(context, R.layout.costum_listview ,horarios);
 }

答案 1 :(得分:0)

试试这个

public costum_adapter(Context context, ArrayList<horario> horarios) {
        super(context, R.layout.costum_listview ,horarios);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater horarioInflater = LayoutInflater.from(getContext());
    View costumView = horarioInflater.inflate(R.layout.costum_listview, parent, false);

    String singleHorario = getItem(position).getHora();
    String singlenote = getItem(position).getNote();
    TextView hora = (TextView) costumView.findViewById(R.id.Hora);
    TextView nota = (TextView) costumView.findViewById(R.id.Nota);

    hora.setText(singleHorario);
    nota.setText(singlenote);

    return costumView;
}

模型类

public class horario{
public String hora;
public int destino;
public int note;

public horario(String horaIn, int Destino, int Nota){
    hora = horaIn;
    destino = Destino;
    note = Nota;
}

public String getHora() {
    return hora;
}

public void setHora(String hora) {
    this.hora = hora;
}

public int getDestino() {
    return destino;
}

public void setDestino(int destino) {
    this.destino = destino;
}

public int getNote() {
    return note;
}

public void setNote(int note) {
    this.note = note;
}
}

答案 2 :(得分:0)

所以我设法解决了自己的问题。我的问题是我无法改变&#34; ArrayList&#34;我想要的是我的课程,但那是因为&#34; horario&#34;被宣布为更大的班级。所以我只需要改为&#34; ArrayList&#34;,&#34; mostraHorario&#34;是一个更大的阶层。