Initialisation de variable a condition
Rami50
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je voudrais creer une classe qui permet dee faire un login et logout depuis un serveur, l'adresse ip de celui-la est definie d'une facon statique au debut de la fonction , comme suit:
je voudrais savoir si c'est possible d'initialiser cet url depondament d'une condition(d'une facon dynamique). par exemple(c'est juste pour clarifier ce que je veux faire):
j'ai pensé a passer l'url en parametre dans tous les fonctions de ma classe mais je crois que c'est moche. je fais utiliser ca comme dernier recours.
toute proposition est le bienvenue ,je n'ais pas de contraintes. voici ma classe :
merci
je voudrais creer une classe qui permet dee faire un login et logout depuis un serveur, l'adresse ip de celui-la est definie d'une facon statique au debut de la fonction , comme suit:
private static String loginURL = "http://192.168.1.5/android_login_api/"
je voudrais savoir si c'est possible d'initialiser cet url depondament d'une condition(d'une facon dynamique). par exemple(c'est juste pour clarifier ce que je veux faire):
if(this.isConnectedToServer("192.168.1.5", 500)) { private static String loginURL = "http://192.168.1.5/android_login_api/"; } if(this.isConnectedToServer("192.168.1.9", 500)) { private static String loginURL = "http://192.168.1.9/android_login_api/"; }
j'ai pensé a passer l'url en parametre dans tous les fonctions de ma classe mais je crois que c'est moche. je fais utiliser ca comme dernier recours.
toute proposition est le bienvenue ,je n'ais pas de contraintes. voici ma classe :
public class UserFunctions { private JSONParser jsonParser; private static String loginURL = "http://192.168.1.5/android_login_api/"; private static String mplayerURL = "http://192.168.1.5/android_mplayer_api/"; private static String registerURL = "http://192.168.1.5/android_login_api/"; private static String login_tag = "login"; private static String register_tag = "register"; private static String delete_tag = "delete"; private static String update_tag = "update"; private static String music_tag = "music"; private static String getusers_tag = "getusers"; // constructor public UserFunctions(){ jsonParser = new JSONParser(); } /** * function make Login Request * @param email * @param password * */ public JSONObject loginUser(String email, String password){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", login_tag)); params.add(new BasicNameValuePair("email", email)); params.add(new BasicNameValuePair("password", password)); JSONObject json = jsonParser.getJSONFromUrl(loginURL, params); // return json Log.i("JSON", json.toString()); return json; } public JSONObject deleteUser(String email){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", delete_tag)); params.add(new BasicNameValuePair("email", email)); JSONObject json = jsonParser.getJSONFromUrl(loginURL, params); // return json Log.i("JSON", json.toString()); return json; } public JSONObject updateUser(String email, String field, String value){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", update_tag)); params.add(new BasicNameValuePair("email", email)); params.add(new BasicNameValuePair("field", field)); params.add(new BasicNameValuePair("value", value)); JSONObject json = jsonParser.getJSONFromUrl(loginURL, params); // return json Log.i("JSON", json.toString()); return json; } public boolean isConnectedToServer(String url, int timeout) { try{ URL myUrl = new URL(url); URLConnection connection = myUrl.openConnection(); connection.setConnectTimeout(timeout); connection.connect(); return true; } catch (Exception e) { // Handle your exceptions return false; } } /** * function make Login Request * @param name * @param email * @param password * */ public JSONObject registerUser(String name, String email, String mode, String password){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", register_tag)); params.add(new BasicNameValuePair("name", name)); params.add(new BasicNameValuePair("email", email)); params.add(new BasicNameValuePair("mode", mode)); params.add(new BasicNameValuePair("password", password)); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(registerURL, params); // return json return json; } public JSONObject PlayMusic(String name){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", "play")); params.add(new BasicNameValuePair("name", name)); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(mplayerURL, params); // return json return json; } public JSONObject ChangeVol(String volume){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", "volume")); params.add(new BasicNameValuePair("volume", volume)); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(mplayerURL, params); // return json return json; } public JSONObject StopMusic(){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", "stop")); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(mplayerURL, params); // return json return json; } public JSONObject ParcourirMusic(){ // Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("tag", "parcourir")); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(mplayerURL, params); // return json return json; } /** * Function get Login status * */ public boolean isUserLoggedIn(Context context){ DatabaseHandler db = new DatabaseHandler(context); int count = db.getRowCount(); if(count > 0){ // user logged in return true; } return false; } /** * Function to logout user * Reset Database * */ public boolean logoutUser(Context context){ DatabaseHandler db = new DatabaseHandler(context); db.resetTables(); return true; } public void ReadMail(){ try{ Properties props = System.getProperties(); props.setProperty("mail.store.protocol", "imaps"); Session session = Session.getDefaultInstance(props, null); Store store = session.getStore("imaps"); store.connect("imap.gmail.com", "rami.mtiri@gmail.com", "pass"); Folder inbox = store.getFolder("Inbox"); inbox.open(Folder.READ_ONLY); SearchTerm term = new SearchTerm() { @Override public boolean match(Message mess) { try { return mess.getContent().toString().toLowerCase().indexOf("boston") != -1; } catch (IOException ex) { // Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex); } catch (MessagingException ex) { // Logger.getLogger(JavaMailTest.class.getName()).log(Level.SEVERE, null, ex); } return false; } }; Message[] searchResults = inbox.search(term); for(Message m:searchResults){ Log.e("mail",m.getFrom()[0].toString() ); System.out.println("MATCHED: " + m.getFrom()[0]); } } catch (Exception e) { } } }
merci
A voir également:
- Initialisation de variable a condition
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- L'initialisation du rockstar games launcher a échoué ✓ - Forum Jeux PC
- GTA V a quitté inopinément - Forum Jeux PC
- Erreur d'initialisation de l'application adobe reader ✓ - Forum Téléchargement
1 réponse
Tu n'es pas obligé d'initialiser une variable au moment de sa déclaration, par ailleurs, à moins de déclarer ta variable avec le mot clé final, rien ne t'empêches de changer sa valeur au fur et à mesure de l'exécution...
Par contre, tu as un problème plus "théorique" c'est que tu déclares loginUrl static mais en l'initialisant avec this, ça risque de ne pas faire ce que tu veux...
Par contre, tu as un problème plus "théorique" c'est que tu déclares loginUrl static mais en l'initialisant avec this, ça risque de ne pas faire ce que tu veux...
// quelques constantes pour pouvoir adapter le code rapidement en cas de changements d'adressage private static final String URL_PREFIX = "http://", URL_SUFFIX= "/android_login_api/", IP_1 = "192.168.1.5", IP_2 = "192.168.1.9"; private static final int TIME_OUT = 500; private /*static*/ String loginURL; // null par défaut private void initURL() { String ip; if (isConnectedToServer(IP_1, TIME_OUT)) ip=IP_1; else if(isConnectedToServer(IP_2, TIME_OUT)) ip=IP_2; else throw new RuntimeException("Not connected to server"); loginURL = URL_PREFIX+ip+URL_SUFFIX; }Evidemment, il faut ensuite utiliser la méthode "initURL" au bon endroit, c'est à dire à un moment où "isConnectedToServer" va renvoyer vrai pour une adresse, c'est à dire une fois que tu es bien connecté quelque part...