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 = 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 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 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
StackOverflow में आपका स्वागत है। इसका उत्तर हजारों बार दिया गया है: आप बार-बार एक ही संदर्भ जोड़ रहे हैं। सूची वास्तव में वस्तुओं को पकड़ नहीं है, लेकिन संदर्भ। पूछने से पहले कृपया कुछ शोध करें।
जोड़ा लेखक m0skit0, स्रोत

1 उत्तर

हर बार जब आप उपयोगकर्ता को जोड़ने के लिए पकड़ने वाले को बुलाते हैं तो आपको एक नया Socio ऑब्जेक्ट बनाना होगा। एक ही संदर्भ का उपयोग केवल वस्तु की सामग्री को बदल देगा

5
जोड़ा