String Visible par toutes les classes du package

Résolu/Fermé
sifokl Messages postés 24 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 20 novembre 2015 - 30 août 2013 à 21:46
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 - 31 août 2013 à 18:27
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

3 réponses

KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 016
30 août 2013 à 23:44
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 dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
30 août 2013 à 23:41
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 samedi 24 mars 2012 Statut Membre Dernière intervention 20 novembre 2015 1
31 août 2013 à 02:07
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 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 016
31 août 2013 à 18:27
Ç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