String Visible par toutes les classes du package

Résolu
sifokl Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour tout le monde ,
je suis en train de developper une appli android et jai une question basique en java :p

voila , jai plusieurs classes dans mon package et puisque j'interragis avec une base de données externes , jaimerai bien definir un String une fois pour tte contenant l'adresse ip de mon ordi (localhost) sur le reseaux local ! (cette adresse change si je change de place (café , maison , bibliotheque etc...)

donc voila , jai opté dans la classe MainActivity.java pour
Public static String ip = "192.168.1.68" 

pour definir ensuite dans la meme classe :
private static final String LOGIN_URL = "http://"+ip+"/lespromoandroid/login.php";


Pour le moment pas de probleme , mais lorsque je definis dans une auutre classe Acceuil.java :
private static String add_article = "http://"+ip+"/lespromoandroid/add_article.php";
, Eclispe me signale un probleme !

je veux que la string ip soit visible par toutes les classes pour ne changer l'adresse ip qu'une seule fois au lieu de m'amuser a changer dans 7 ou 8 classes chaque fois que je change de place :)

merci
A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Elle est déjà visible par toutes les classes vu qu'elle est public, il faut cependant y accéder avec son nom de classe puisqu'elle est static.

Remarque : En Java les noms de constantes devraient être en majuscules :

public static String IP = "192.168.1.68";
private static final String LOGIN_URL = "http://"+IP+"/lespromoandroid/login.php";

private static String ADD_ARTICLE = "http://"+MainActivity.IP+"/lespromoandroid/add_article.php";

PS. c'est bizarre de voir du PHP se promener en Java, tu devrais plutôt regarder les JSP et ainsi avoir du Java partout !
1
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Bonsoir sifokl,

Je pense qu'il te faut déclarer ta constante globale ip dans une classe abstraite (classe non instanciable) :
Dans la classe abstraite MesConstantes.java :
public static String ip = "192.168.1.68";


Dans la classe Accueil.java :
private static String add_article = "http://"+MesConstantes.ip+"/lespromoandroid/add_article.php";

0
sifokl Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   1
 
re tout le monde ,
je viens de me reconnecter donc jai pas encore essayé vos propositions , je vais le faire immediateent , en attendant , je vous propose ce tuto sympa pour comprendre que fait php dans ce bordel :)
http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ça ne m'empêchera pas de penser qu'il est est plus intéressant de tout faire en Java soit un appel JDBC direct entre l'application et la base de données, soit avec un appel JNDI sur un EJB Stateless, mais un mélange Java/PHP est douteux...
0