2013-01-10 4 views
0

J'ai une classe (sous Android) appelée TCPClient qui reçoit une chaîne du serveur. Je dois envoyer ceci à une fonction printmsg dans la classe Showmsg, qui est dans le même paquet que TCPClient.
Le code suivant ne fonctionne pas.Communication entre classes dans Android

public class TCPClient implements Runnable { 
    .. 
    .. 
    public void run() { 
     .. 
     Showmsg obj = new Showmsg(); 
     obj.printmsg("Hello"); 
    } 
} 

En classe Showmsg:

public void printmsg(String str) {  
    Toast(. .);  
} 
+1

Quelle erreur obtenez-vous? affiche le logcat ... – Matthieu

+0

printmsg est probablement appelé, mais votre Toast ne fonctionne pas. Mais cela a une autre raison ... – RvdK

Répondre

1

Ce que je ne vois pas dans le code donné est .start(), puisque TCPClient est Runnable. De plus, je ne sais pas comment fonctionne votre méthode toast(str), mais n'oubliez pas .show(). Ce code devrait fonctionner.

public class TCPClient implements Runnable { 
    public void run() { 
     Showmsg obj = new Showmsg(); 
     obj.printmsg("Hello"); 
    } 
} 

public class MyActivity { 
    TCPClient tcp; 

    public void onCreate(Bundle b) { 
     super.onCreate(b); 
     tcp = new TCPClient(); 
    } 

    public void onResume() { 
     super.onResume(); 
     tcp.start(); 
    } 

} 

public class Showmsg { 
    public void printmsg(String str) {  
     toast(str); 
    } 

    private void toast(String str) { 
     Log.d(TAG, str); 
     Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
     System.out.println(str); 
    } 
}