ArrayAdapter使用按钮删除项目

时间:2013-11-29 14:51:11

标签: java android listview

我遇到了一些问题,我创建了一个工作正常的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;
    }
}

1 个答案:

答案 0 :(得分:1)

删除项目时,应将其从socio列表中删除,然后在适配器实例上调用notifyDataSetChanged()

希望有所帮助