我有两项活动。我使用第一个为用户模拟“登录”,并在下一个活动中传递“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(),但在另一个活动中,向量仍包含所有内容。为什么会这样?
答案 0 :(得分:0)
当您使用intent传递对象时,您没有传递指向它的指针。对象(如您的情况中的列表)在您将其置于意图时进行序列化,而不是在获取它时进行反序列化。因此,您应该找到另一种方法来从第一个活动中获取实际数据