B
BlupBlup
Ambitioniertes Mitglied
- 1
Hi,
ich versuche einen Chat zu implementieren.
Mehrere Smartphones kommunzieren dabei über ein einfaches
selbstgeschriebenes auf Socket basieretes Java Server Programm,
das auf meinem Rechner läuft.
Meine App besteht aus mehreren Acitivities.
Eine Activity hat eine TextView in der die Chatnachrichten angezeigt
werden sollen und ein Eingabefeld, sowie einen Button zum verschicken
einer Chatnachricht. Darüber hinaus gibt es noch weitere Buttons mit denen man zu anderen Activities wechseln kann.
Wenn ich zu einer anderen Activity wechsel, sollen im Hintergrund ankommende Chatnachrichten in einer Textdatei gespeichert werden,
damit beim Wechsel zur Chatactivity alle Chatnachrichten angezeigt werden
können.
Wenn ich also zur Chatactivity wechsel lese ich einfach die Textdatei aus und lade den Text in die TextView.
Wenn die Chatactivity gerade angezeigt wird, so sollen
grad neu im ClientThread ankommende Chatnachrichten an die TextView angehängt werden.
Mein Problem ist, ich weiß nicht wie ich vom ClientThread
auf die TextView zugreifen kann.
ich versuche einen Chat zu implementieren.
Mehrere Smartphones kommunzieren dabei über ein einfaches
selbstgeschriebenes auf Socket basieretes Java Server Programm,
das auf meinem Rechner läuft.
Meine App besteht aus mehreren Acitivities.
Eine Activity hat eine TextView in der die Chatnachrichten angezeigt
werden sollen und ein Eingabefeld, sowie einen Button zum verschicken
einer Chatnachricht. Darüber hinaus gibt es noch weitere Buttons mit denen man zu anderen Activities wechseln kann.
Wenn ich zu einer anderen Activity wechsel, sollen im Hintergrund ankommende Chatnachrichten in einer Textdatei gespeichert werden,
damit beim Wechsel zur Chatactivity alle Chatnachrichten angezeigt werden
können.
Wenn ich also zur Chatactivity wechsel lese ich einfach die Textdatei aus und lade den Text in die TextView.
Wenn die Chatactivity gerade angezeigt wird, so sollen
grad neu im ClientThread ankommende Chatnachrichten an die TextView angehängt werden.
Mein Problem ist, ich weiß nicht wie ich vom ClientThread
auf die TextView zugreifen kann.
Code:
public class ClientThread extends Thread
{
private Socket clientSocket;
private BufferedReader in;
private PrintWriter out;
private boolean run = true;
public ClientThread(String ip, int port) throws IOException
{
this.clientSocket = new Socket(ip, port);
this.in = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream()));
this.out = new PrintWriter(this.clientSocket.getOutputStream(), true);
}
public void run()
{
this.run = true;
while(run)
{
try
{
String eingegebenerText = this.in.readLine().trim();
//textView.append(eingegebenerText + "\n"); oder sowas in der Art
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public void sendMessage(String message)
{
this.out.print(message);
this.out.println();
this.out.flush();
if(message.equals("BYE"))
{
this.run = false;
}
}
}