我遇到了一些问题,我创建了一个工作正常的arrayadapter,但是当我点击删除按钮时,它会删除该项目,但listview不会改变。我现在缺少一些代码,但我不知道它是什么?
ListarSocio.java
package com.example.polideportivo1;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
public class ListarSocio extends Activity {
ListView listview;
ArrayAdapterSocio socioArrayAdapter;
ArrayList<Socios>socio = VariablesGlobales.getInstance().getSocios();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_socio_main);
socioArrayAdapter = new ArrayAdapterSocio(ListarSocio.this, R.layout.list_socio, socio);
listview = (ListView)findViewById(R.id.ListaMainSocio);
listview.setItemsCanFocus(false);
listview.setAdapter(socioArrayAdapter);
}
}
ArrayAdapterSocio.java
package com.example.polideportivo1;
import java.util.ArrayList;
import java.util.List;
import javax.xml.datatype.Duration;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ArrayAdapterSocio extends ArrayAdapter<Socios>{
Context context;
int layoutResourceId;
ArrayList<Socios>socio = VariablesGlobales.getInstance().getSocios();
public ArrayAdapterSocio(Context context, int layoutResourceId, ArrayList<Socios> soc) {
super(context, layoutResourceId, soc);
this.context= context;
this.layoutResourceId = layoutResourceId;
this.socio = soc;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View item = convertView;
CapturadorSocio CapturadorSocio = null;
if (item == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
item = inflater.inflate(layoutResourceId, parent, false);
CapturadorSocio = new CapturadorSocio();
CapturadorSocio.nombre = (TextView) item.findViewById(R.id.textNombre);
CapturadorSocio.apellido = (TextView) item.findViewById(R.id.textApellido);
CapturadorSocio.documento = (TextView) item.findViewById(R.id.textCI);
CapturadorSocio.sexo = (TextView) item.findViewById(R.id.textSexo);
CapturadorSocio.estadoCivil = (TextView) item.findViewById(R.id.textEstadoCivil);
CapturadorSocio.nacionalidad = (TextView) item.findViewById(R.id.textNacionalidad);
CapturadorSocio.fechaNacimiento = (TextView) item.findViewById(R.id.textNacimiento);
CapturadorSocio.domicilio = (TextView) item.findViewById(R.id.textDomicilio);
CapturadorSocio.localidad = (TextView) item.findViewById(R.id.textLocalidad);
CapturadorSocio.telfijo = (TextView) item.findViewById(R.id.textTelFijo);
CapturadorSocio.telcelular = (TextView) item.findViewById(R.id.textTelCel);
CapturadorSocio.correo = (TextView) item.findViewById(R.id.textCorreo);
CapturadorSocio.edit = (Button) item.findViewById(R.id.btnEdit);
//CapturadorSocio.delete = (Button) item.findViewById(R.id.btnDelete);
item.setTag(CapturadorSocio);
} else {
CapturadorSocio = (CapturadorSocio) item.getTag();
}
Socios socios = socio.get(position);
CapturadorSocio.nombre.setText(socios.obtenerNombre());
CapturadorSocio.apellido.setText(socios.obtenerApellido());
CapturadorSocio.documento.setText(socios.obtenerCI());
CapturadorSocio.sexo.setText(socios.obtenerSexo());
CapturadorSocio.estadoCivil.setText(socios.obtenerEstadoCivil());
CapturadorSocio.nacionalidad.setText(socios.obtenerNacionalidad());
CapturadorSocio.fechaNacimiento.setText(socios.obtenerFechaNacimiento());
CapturadorSocio.domicilio.setText(socios.obtenerDomicilio());
CapturadorSocio.localidad.setText(socios.obtenerLocalidad());
CapturadorSocio.telfijo.setText(socios.obtenerTelefonoFijo());
CapturadorSocio.telcelular.setText(socios.obtenerCelular());
CapturadorSocio.correo.setText(socios.obtenerCorreo());
CapturadorSocio.delete.setOnClickListener(new OnClickListener () {
@Override
public void onClick(View v) {
Socios borrarSocio = socio.get(position);
VariablesGlobales.getInstance().getSocios().remove(borrarSocio);
}});
return item;
}
static class CapturadorSocio {
TextView nombre;
TextView apellido;
TextView documento;
TextView sexo;
TextView estadoCivil;
TextView nacionalidad;
TextView fechaNacimiento;
TextView domicilio ;
TextView localidad;
TextView telfijo;
TextView telcelular;
TextView correo;
Button edit;
Button delete;
}
}
答案 0 :(得分:1)
删除项目时,应将其从socio
列表中删除,然后在适配器实例上调用notifyDataSetChanged()
。
希望有所帮助