2

我有一个ListView,当我单击一个按钮时,我想将数据添加到我的ListView。我为此有一个自定义的ArrayAdapter,但这仅适用于第一次单击,第二次不添加任何内容,但如果我调试数据就可以了。

代码:

   public class gremioAdapter extends ArrayAdapter<Gremio> {

        Context context;
        int layoutResourceId;
        ArrayList<Gremio> data = null;

        public gremioAdapter(Context context, int layoutResourceId, ArrayList<Gremio> data)
        {
            super(context, layoutResourceId, data);
           this.layoutResourceId = layoutResourceId;
            this.context = context;
            this.data = data;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            GremioHolder holder = null;

            if (row == null) {
                LayoutInflater inflater = ((Activity) context).getLayoutInflater();
                row = inflater.inflate(layoutResourceId, parent, false);

                holder = new GremioHolder();
                holder.tvGremio = (TextView) row.findViewById(R.id.tvGremio);
                holder.etComentario = (EditText) row.findViewById(R.id.etComentario);
                holder.cbActivo = (CheckBox) row.findViewById(R.id.cbGremioActivo);
                row.setTag(holder);
            }
            else {
                holder = (GremioHolder) row.getTag();
            }

            Gremio gremio = data.get(position);
            holder.tvGremio.setText(gremio.literal);
            holder.etComentario.setText(gremio.comentario);    
            posicion++;


            return row;
        }

        public class GremioHolder {
            TextView tvGremio;
            EditText etComentario;
            CheckBox cbActivo;
        }
    }

}

我在这里添加数据:

btnAnadirGremio.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View v) {

                gremioQueQuiereAnadir = spinnerGremios.getSelectedItem().toString();
                codigoDelGremio = respuestaTerminar.getListaGremiosDisponibles().get(gremioClickeado).getCodigo();
                Gremio objetoGremioAnadir = new Gremio();
                objetoGremioAnadir.setCodigo(codigoDelGremio);
                objetoGremioAnadir.setLiteral(gremioQueQuiereAnadir);
                gremios.add(objetoGremioAnadir);
                adaptadorListaGremios.notifyDataSetChanged();

            }
        });
4

1 回答 1

0
public class gremioAdapter extends ArrayAdapter<Gremio> {

....

public void updateDataSet(Gremio objetoGremioAnadir) {
   this.data.add(objetoGremioAnadir);
   notifyDataSetChanged();

}

}

btnAnadirGremio.setOnClickListener(new OnClickListener()
 {

    @Override
    public void onClick(View v) {

      gremioQueQuiereAnadir = spinnerGremios.getSelectedItem().toString();
      codigoDelGremio = respuestaTerminar.getListaGremiosDisponibles().get(gremioClickeado).getCodigo();
       Gremio objetoGremioAnadir = new Gremio();
       objetoGremioAnadir.setCodigo(codigoDelGremio);
       objetoGremioAnadir.setLiteral(gremioQueQuiereAnadir);
       adaptadorListaGremios.updateDataSet(objetoGremioAnadir );

       }
 });
于 2012-07-14T11:07:49.923 回答