将指针从一个活动传递到另一个活动

时间:2014-11-17 08:21:59

标签: android pointers android-activity

我有两项活动。我使用第一个为用户模拟“登录”,并在下一个活动中传递“usuarios”对象,其中我拥有所有用户。问题是,当我从一个活动中删除一个用户时,它不会显示在另一个活动中。我没有使用指针?

来自登录活动的

代码:

public void ejecutarIniciarSesion (View view){

    TextView usuario = (TextView) findViewById(R.id.textField_usuario);
    TextView password= (TextView) findViewById(R.id.textField_pass);

    String pass = usuarios.getPass(usuario.getText().toString());

    if (password.getText().toString().equalsIgnoreCase(pass)){

        usuarios.getUsuario(usuario.getText().toString()).Set_Conected(1);
        Intent actividad = new Intent(this, MiCuenta.class);
        actividad.putExtra("usuarios", usuarios);
        actividad.putExtra("user",usuario.getText().toString());
        usuario.setText("");
        password.setText("");
        startActivity(actividad);
    }

    else{
        usuario.setText("");
        contraseña.setText("");
    }
}

这是我得到对象的地方:

公共类MiCuenta扩展了活动{

PruebaUsuarios usuarios;
String nombre,apellidos;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mi_cuenta);

    usuarios = (PruebaUsuarios) getIntent().getExtras().getSerializable("usuarios");

    nombre = usuarios.userOnline();
    apellidos = usuarios.getUsuario(nombre).Get_Apellidos();

    TextView nombreText = (TextView)findViewById(R.id.textView1);
    TextView correoText = (TextView)findViewById(R.id.textView2);

    nombreText.setText("Benvingut "+nombre+" "+apellidos);
    correoText.setText("Correo: "+usuarios.getUsuario(nombre).Get_Email());
}

这是我从MiCuenta类中删除对象的地方:

public void ejecutarBorrarCuenta(查看视图){

    usuarios.borrarUsuario(nombre);
    this.finish(); 

}

我使用了vector.removeAllElements(),但在另一个活动中,向量仍包含所有内容。为什么会这样?

1 个答案:

答案 0 :(得分:0)

当您使用intent传递对象时,您没有传递指向它的指针。对象(如您的情况中的列表)在您将其置于意图时进行序列化,而不是在获取它时进行反序列化。因此,您应该找到另一种方法来从第一个活动中获取实际数据