简体   繁体   English

ArrayAdapter使用按钮删除项目

[英]ArrayAdapter delete an item with a button

I am having a bit of a problem, i created an arrayadapter that works just fine, but when i click in the delete button, it deletes the item but the listview doesn´t change. 我有一个问题,我创建了一个很好用的arrayadapter,但是当我单击Delete按钮时,它删除了该项目,但listview并没有改变。 I now i am missing a bit of code, but I don´t know what it is? 我现在缺少一些代码,但是我不知道它是什么吗?

ListarSocio.java 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 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;
    }
}

When you delete an item you should remove it from your socio list and then call notifyDataSetChanged() on your adapter instance. 删除项目时,应将其从socio列表中删除,然后在适配器实例上调用notifyDataSetChanged()

Hope that helps 希望能有所帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用按钮删除 Listview w/ArrayAdapter 中的选定项目 - Using button to delete selected item in Listview w/ ArrayAdapter 如何从另一个活动调用 ArrayAdapter 以使用 strings.xml 数组从 ArrayAdapter 中删除项目? - How can I call an ArrayAdapter from another activity to delete item from ArrayAdapter with strings.xml array? 获得ArrayAdapter的活动项 - Getting active item of ArrayAdapter 将新项目添加到ArrayAdapter - Adding new item to ArrayAdapter 我如何从使用ArrayAdapter的列表视图中删除项目 <String> 显示在列表视图上 - How do I delete item from listview I used ArrayAdapter<String> to display on listview 使用ArrayAdapter中的按钮的自定义视图 - Custom view with button in ArrayAdapter 如何在单击按钮时从ArrayList和ArrayAdapter中删除所选项目? - How Do I Remove Selected Item From ArrayList and ArrayAdapter On Button Click? 如何将 onclick 添加到列表视图中的每个按钮,填充自定义数组适配器,从数组中删除该项目并更新它? - How to add an onclick to every button in a listview, populated with a custom arrayadapter, that deletes that item from the array and updates it? 从 arrayadapter 中删除项目不起作用 - Remove item from arrayadapter not working 在android studio中删除一个带有按钮的列表视图项目 - Delete a listview item with a button in it self in android studio
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM