2013-11-29 3 views
1

У меня проблема, я создал массив, который работает отлично, но когда я нажимаю кнопку удаления, он удаляет элемент, но listview не изменяется. Я теперь пропущу немного кода, но я не знаю, что это такое?ArrayAdapter удаляет элемент с помощью кнопки

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

Где код для нажатия кнопки слушателя событий? При удалении элемента вам нужно вызвать 'notifyDataSetChanged' на вашем адаптере. – npace

+0

использовать notifydatassetanged на вашем адаптере. – Fabian

ответ

1

При удалении элемента, вы должны удалить его из списка socio и затем вызвать notifyDataSetChanged() на экземпляр адаптера.

Надежда, что помогает

+0

thaks вы очень, теперь он отлично работает – user3042487

+0

@ user3042487 welcome – kiruwka

Смежные вопросы