2013-11-27 89 views
1

对不起,让您烦恼,我是android新手,我需要一点帮助。我正在做一个简单的应用程序,让你在俱乐部注册一些人。它一直在发生的事情是,我添加到数组列表中的最后一个人已经过时了。我真的不知道它会是什么。如果你能帮助我,我将不胜感激。Arraylist不断覆盖我添加的最后一个条目

AltaSocio.java

package com.example.polideportivo1; 

import java.text.DateFormat; 
import java.text.Format; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemSelectedListener; 



public class AltaSocio extends Activity { 
    Socios nuevosSocio = new Socios(0,"","","","","","","","",0,0,""); 
    VariablesGlobales vb = new VariablesGlobales(); 
    private EditText editDocumento; 
    private EditText editApellido; 
    private EditText editNombre; 
    private CheckBox checkBoxM; 
    private CheckBox checkBoxF; 
    private EditText editCivil; 
    private Spinner Nacionalidad; 
    private EditText Nacimiento; 
    private EditText Domicilio; 
    private Spinner Localidad; 
    private EditText Celular; 
    private EditText TelFijo; 
    private EditText Correo; 
    String miNacionalidad; 
    String miLocalidad; 


    ArrayList<Socios> socios = vb.getSocios(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.alta_socio2); 

     editDocumento = (EditText)findViewById(R.id.editDocumento); 
     editApellido = (EditText)findViewById(R.id.editApellido); 
     editNombre = (EditText)findViewById(R.id.editNombre); 
     editCivil = (EditText)findViewById(R.id.editCivil); 
     Nacimiento = (EditText)findViewById(R.id.editNacimiento); 
     Domicilio = (EditText)findViewById(R.id.editDomicilio); 
     Celular = (EditText)findViewById(R.id.editCelular); 
     TelFijo = (EditText)findViewById(R.id.editFijo); 
     Correo = (EditText)findViewById(R.id.editCorreo); 
     checkBoxM = (CheckBox)findViewById(R.id.checkM); 
     checkBoxF = (CheckBox)findViewById(R.id.checkF); 
     Nacionalidad = (Spinner)findViewById(R.id.spinnerNacionalidad); 
     Localidad = (Spinner)findViewById(R.id.spinnerLocalidad); 

     final Button BtnCrear = (Button)findViewById(R.id.botonCrear); 
     final Button BtnCerrar = (Button)findViewById(R.id.buttonAtras); 



     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Nacionalidad, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
     Nacionalidad.setAdapter(adapter); 

     Nacionalidad.setOnItemSelectedListener(new OnItemSelectedListener() { 


      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, 
        int pos, long id) { 
       parent.getItemAtPosition(pos); 
       miNacionalidad = Nacionalidad.getItemAtPosition(pos).toString(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       //another call 

      } 

     }); 

     ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.Localidad, android.R.layout.simple_spinner_item); 
     adapter2.setDropDownViewResource(android.R.layout.simple_spinner_item); 
     Localidad.setAdapter(adapter2); 

     Localidad.setOnItemSelectedListener(new OnItemSelectedListener() { 


      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, 
        int pos, long id) { 
       parent.getItemAtPosition(pos); 
       miLocalidad = Localidad.getItemAtPosition(pos).toString(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       //another call 

      } 
     }); 




    } 

    public void grabar(View v) { 
     nuevosSocio.setCI(Integer.parseInt(editDocumento.getText().toString())); 
     nuevosSocio.setApellido(editApellido.getText().toString()); 
     nuevosSocio.setNombre(editNombre.getText().toString()); 
     nuevosSocio.setEstadoCivil(editCivil.getText().toString()); 

     DateFormat formateador = new SimpleDateFormat("dd/MM/yyyy"); 
     DateFormat DataSocio; 

     try { 
      String Fecha =(Nacimiento.getText().toString()); 
      formateador.parse(Fecha); 
      nuevosSocio.setFechaNacimiento(Fecha); 
     } 
     catch (ParseException e) 
      { 
      Toast g = Toast.makeText(this, "Formato Fecha no valido", Toast.LENGTH_LONG); 

      } 

     //nuevosSocio.setFechaNacimiento(Fecha); 

     nuevosSocio.setDomicilio(Domicilio.getText().toString()); 
     nuevosSocio.setTelefonoCelular(Integer.parseInt(Celular.getText().toString())); 
     nuevosSocio.setTelefonoFijo(Integer.parseInt(TelFijo.getText().toString())); 
     nuevosSocio.setCorreo(Correo.getText().toString()); 
     if (checkBoxM.isChecked()) { 
      nuevosSocio.setSexo("Masculino"); 
     } else { 
      nuevosSocio.setSexo("Femenino"); 
     } 
     nuevosSocio.setNacionalidad(miNacionalidad); 
     nuevosSocio.setLocalidad(miLocalidad); 

     socios.add(nuevosSocio); 
     nuevosSocio = new Socios(0,"","","","","","","","",0,0,""); 

     Toast t = Toast.makeText(this, "Los datos fueron grabados", 
        Toast.LENGTH_SHORT); 
     t.show(); 
     finish(); 
    } 



} 

Socio.java

package com.example.polideportivo1; 

import java.sql.Date; 

import android.graphics.Bitmap; 
import android.widget.CheckBox; 
import android.widget.ImageView; 

public class Socios { 

    private int CI; 
    private String Nombre; 
    private String Apellido; 
    private String Sexo; 
    private String EstadoCivil; 
    private String Nacionalidad; 
    private String FechaNacimiento; 
    private String Domicilio; 
    private String Localidad; 
    private int TelefonoCelular; 
    private int TelefonoFijo; 
    private String DireccionCorreo; 

    public Socios(int CI, String Nombre, String Apellido, String Sexo, String EstadoCivil, 
        String Nacionalidad, String FechaNacimiento, String Domicilio, String Localidad, int TelefonoCelular, int TelefonoFijo, String DireccionCorreo) { 
     this.CI = CI; 
     this.Nombre = Nombre; 
     this.Apellido = Apellido; 
     this.Sexo = Sexo; 
     this.EstadoCivil = EstadoCivil; 
     this.Nacionalidad = Nacionalidad; 
     this.FechaNacimiento = FechaNacimiento; 
     this.Domicilio = Domicilio; 
     this.Localidad = Localidad; 
     this.TelefonoCelular = TelefonoCelular; 
     this.TelefonoFijo = TelefonoFijo; 
     this.DireccionCorreo = DireccionCorreo; 

    } 

    public int obtenerCI() { 
     return CI; 
    } 
    public String obtenerNombre() { 
     return Nombre; 
    } 

    public String obtenerApellido() { 
     return Apellido; 
    } 

    public String obtenerSexo() { 
     return Sexo; 
    } 
    public void setSexo() { 
     this.Sexo = Sexo; 
    } 
    public String obtenerNacionalidad() { 
     return Nacionalidad; 
    } 

    public String obtenerEstadoCivil() { 
     return EstadoCivil; 
    } 

    public String obtenerFechaNacimiento() { 
     return FechaNacimiento; 
    } 

    public String obtenerDomicilio() { 
     return Domicilio; 
    } 

    public String obtenerLocalidad() { 
     return Localidad; 
    } 

    public int obtenerCelular() { 
     return TelefonoCelular; 
    } 

    public int obtenerTelefonoFijo() { 
     return TelefonoFijo; 
    } 

    public String obtenerCorreo() { 
     return DireccionCorreo; 
    } 


    public void setCI(int parseInt) { 
     this.CI = parseInt; 

    } 

    public void setApellido(String string) { 
     this.Apellido = string; 

    } 

    public void setNombre(String string) { 
     this.Nombre = string; 

    } 

    public void setEstadoCivil(String string) { 
     this.EstadoCivil = string; 

    } 

    public void setDomicilio(String string) { 
     this.Domicilio = string; 

    } 

    public void setTelefonoCelular(int parseInt) { 
     this.TelefonoCelular = parseInt; 

    } 

    public void setTelefonoFijo(int parseInt) { 
     this.TelefonoFijo = parseInt; 

    } 

    public void setCorreo(String string) { 
     this.DireccionCorreo = string; 

    } 

    public void setSexo(String string) { 
     this.Sexo = string; 

    } 

    public void setNacionalidad(String miNacionalidad) { 
     this.Nacionalidad = miNacionalidad; 

    } 

    public void setLocalidad(String miLocalidad) { 
     this.Localidad = miLocalidad; 

    } 

    public void setFechaNacimiento(String string) { 
     this.FechaNacimiento = string; 

    } 


} 
+0

欢迎来到StackOverflow。这已被回答数千次:您一次又一次地添加相同的参考。列表并不真正拥有对象,而是引用。请在询问之前做一些调查。 – m0skit0

回答

5

每次叫格拉巴里添加你需要创建一个新的Socio对象的用户。使用相同的引用只会改变对象的内容

相关问题