2

ListViewがあり、ボタンをクリックすると、 ListViewにデータを追加したいと思います。このためのカスタムArrayAdapterがありますが、これは最初のクリックでのみ機能し、2回目は何も追加しませんが、データをデバッグすれば問題ありません。

コード:

   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 に答える