0

の変数からの意向のEditText:更新私は簡単かつ正確にしようとするオブジェクト

私はチャットが含まれているユーザーオブジェクトを持っており、これは私がメッセージ受信するたびに更新されます

 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); 
      } 
     } 
    }); 

私はEV自動的に更新されるように意図が含まれているの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のユーザーをクリックします。

私はユーザーオブジェクトでどのような種類の変数を使用すべきか、またその実装方法はわかりません。あなたのUsuariosクラスで

+1

"インテントを含むEditText" ..ここで何を言おうとしていますか?あなたは新しい活動の開始や最新活動のふりをしていますか?私はあなたの仕様をキャッチしていない – Greggz

+0

私は、リストビューをクリックして、アクティビティを開始すると、このアクティビティにはEditTextを持つ添付.xmlがあり、各ユーザに含まれる変数に基づいて更新されたい、チャット –

答えて

0

変数を追加します。代わりにインデックスを渡す

public ArrayList<String> currentChat; 

を、多分オブジェクト自身を渡します。

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

そして、あなたのonCreateチャット活動に

@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); 

私はあなたの問題の権利を得ましたか?

+0

その解決策の問題は、1行のテキストしか保存できないことです。たとえば、2行のテキストをそのユーザーに送信すると、1行が失われます。 それで、私はそれをどうやって行うのか考えることができません。 これは何を行うべきである一定の更新のようになります –

+0

@ManuuCarpそれは右のように見えません。文字列には、複数の行のテキストを格納することができます。たとえば、それぞれの行を '/ n'で区切ることができます。とにかく、 'ArrayList 'も使うことができます。 – Greggz

+0

<3ありがとうございました –

関連する問題