从对象的变量更新Intent的EditText

时间:2017-12-26 19:38:39

标签: android android-intent android-activity android-edittext

我会尽量简短而准确:

我有一个包含聊天的用户对象,每次收到消息时都会更新:

public class Usuarios implements Serializable {

private static final long serialVersionUID = 1113799434508676095L;

private int id;
private String nombre;
private String ip;
private boolean isSInicial;

//HERE WILL GO THE VARIABLE THAT STORMS THE CHAT, BUT I DO NOT KNOW HOW TO IMPLEMENT IT

public Usuarios(int id, String nombre, String ip, boolean isSInicial){
    this.id = id;
    this.nombre = nombre;
    this.ip = ip;
    this.isSInicial = isSInicial;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getNombre() {
    return nombre;
}

public void setNombre(String nombre) {
    this.nombre = nombre;
}

public String getIp() {
    return ip;
}

public void setIp(String ip) {
    this.ip = ip;
}

public boolean isSInicial() {
    return isSInicial;
}

public void setSInicial(boolean SInicial) {
    isSInicial = SInicial;
}}

我有一项活动,通过点击列表,为特定用户加载新活动:

        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
            Usuarios e = (Usuarios) listview.getItemAtPosition(pos);

            Intent visorDetalles = new Intent(view.getContext(),Chat.class);

            if(Contactos.listaDeContactos.indexOf(e) >= 0) {
                visorDetalles.putExtra("indice", Contactos.listaDeContactos.indexOf(e));
                startActivity(visorDetalles);
            }
            else{
                Toast.makeText(contexto,"Usuario fuera de linea",Toast.LENGTH_LONG);
            }
        }
    });

每次点击ListView的用户时,我都需要自动更新包含Intent的EditText。

我不知道我应该在用户对象中使用哪种变量以及如何实现它。

1 个答案:

答案 0 :(得分:0)

在Usuarios类中添加变量:

public ArrayList<String> currentChat;

不是传递索引,而是自己传递Object。

if(Contactos.listaDeContactos.indexOf(e) >= 0) {
  visorDetalles.putExtra("usuario",e);
  startActivity(visorDetalles);
}
else{
  Toast.makeText(contexto,"Usuario fuera de linea",Toast.LENGTH_LONG);
}

在你的onCreate Chat活动中

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

        Intent intent = getIntent();
        Usuario usuario = (Usuario) intent.getSerializableExtra("usuario");
        EditText myEditText = (EditText)findViewById(R.id.myEditText1));

        String allChat;

        for(String chatLine : usuario.currentChat) {
            allChat += chatLine + '\n';
        }

        myEditText.setText(allChat);

我的问题是否正确?