Arraylist会覆盖我添加的最后一个条目

时间:2013-11-27 15:55:03

标签: java android arraylist

抱歉让你烦恼,我是android新手,我需要一些帮助。我正在做一个简单的ampplication,你在其中注册一些人到俱乐部。它一直在发生的事情是,我添加到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;

    }


}

1 个答案:

答案 0 :(得分:5)

每次调用grabar添加用户时,都必须创建一个新的Socio对象。使用相同的引用只会更改对象的内容