我有一个 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();
}
});
答案 0 :(得分: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 );
}
});