Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158

    [ANDROID][JAVA] Variabile non Prende Valore

    Devo Passare un Valore a una stringa in un'altra classe,questo è il metodo che passa il valore:
    codice:
    public void inserisciIP(){
        preferenze = PreferenceManager.getDefaultSharedPreferences(this);
        String ip = preferenze.getString("edit_text_InserisciIP","edit_text_InserisciIP");
        //Provo a iniettare Con Il setter della Classe Config
    Config_inserisciIP = new Config();
        Config_inserisciIP.setStringaIp(ip);
        //Log.d("mostraIp" ,ip);
    
    
    }
    E questa è la classe che riceve il valore:
    codice:
    public class Config{
    
    
       
    
        private static  String stringadaaggiungereIp  ;
    
    
    
    
        public void setStringaIp(String stringaIp) {
            stringaIp = this.stringadaaggiungereIp ;
        }
    
    
        public static final String DATA_URLCASA = "http://"+stringadaaggiungereIp+"/riparazioni/Get_un_prodotto.php?Nbusta=";
        public static final String DATA_UPDATE = "http://"+stringadaaggiungereIp+"/riparazioni/Update.php";
    
        public static final String KEY_NBUSTA = "Nbusta";
        public static final String KEY_COSTO = "costo";
        public static final String KEY_PVENDITA = "pVendita";
        public static final String KEY_BOOL_PRONTA = "pronta";
    
        public static final String JSON_ARRAY = "tabripa";
    
    }
    ma ho provato con un BrackPoint la stringa del setter ha i dati ma "stringadaaggiungereIp" è nulla vedi allegato
    Immagini allegate Immagini allegate

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Sposto nel forum Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327
    Guarda bene il tuo metodo setStringaIp: stai assegnando il valore del parametro a se stesso... non esiste nessuna variabile di istanza (o di classe) chiamata srtingaIp, quindi l'assegnamento lo stai facendo sulla stessa variabile che è anche il parametro del metodo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Guarda bene il tuo metodo setStringaIp: stai assegnando il valore del parametro a se stesso... non esiste nessuna variabile di istanza (o di classe) chiamata srtingaIp, quindi l'assegnamento lo stai facendo sulla stessa variabile che è anche il parametro del metodo.




    Ciao.
    Ho fatto anche cosi ma non la prende in teoria "stringadaaggiungereIp " dovrebbe ricevere il valore o sbaglio puo fare un piccolo esempio mi pare di essere rimbanbito.

    codice:
    publicvoidsetStringaIp(String stringaIp){this.stringadaaggiungereIp = stringaIp;}

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Nio74 Visualizza il messaggio
    Ho fatto anche cosi ma non la prende in teoria "stringadaaggiungereIp " dovrebbe ricevere il valore o sbaglio puo fare un piccolo esempio mi pare di essere rimbanbito.
    Generalmente l'approccio tipico è quello di avere il nome del parametro (di metodo/costruttore) uguale al nome della variabile di istanza e poi usare this per qualificarla e distinguerla dal parametro.

    Inoltre nel tuo codice iniziale hai messo il campo come static ma il metodo setter è di istanza. Questo è molto dubbio!

    codice:
    public class Config {
        private String stringaIp;
    
        public void setStringaIp(String stringaIp) {
            this.stringaIp = stringaIp;
        }
    
        .....

    P.S. Queste sono le "basi" della programmazione Java ... prima di Android e prima di molte altre cose ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Spiego Meglio ho riscritto due classi per provare:

    LA Classe Stringhe:

    codice:
    public class Stringhe {    
         
        private static String stringapassta;
        
        
        
    
    
        public static  void setStringapassta(String stringapasstaesterna) {
            Stringhe.stringapassta = stringapasstaesterna;
            System.out.println("Stringa Acquisitanel_Setter...."+stringapassta);
        }
        
        public static String getURL() {
            return URL;
        }
        
        private static String  URL = "http:\\"+stringapassta+"gino.it";
    
    
        
    
    
    }

    E il Main Dove passo e a sua volta vorrei vedere L'URL con al suo interno la variabile passata dal setter:

    codice:
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Stringhe.setStringapassta(passastringa("1111111"));
            
            System.out.println("StringaOttenura........"+Stringhe.getURL());
    
    
        }
        
        
        public static  String  passastringa(String pstringa)
        {
            return pstringa ;
        }
    
    
    }
    Questo è il risultato con la stringa nulla:

    codice:
    Stringa Acquisitanel_Setter....1111111StringaOttenura........http:\nullgino.it

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Ascolta. La inizializzazione di URL

    private static String URL = "http:\\"+stringapassta+"gino.it";

    essendo static viene eseguita quando la classe viene caricata. E quindi avviene PRIMA che tu arrivi ad invocare setStringapassta dal main. E URL viene inizializzato con la stringa composta usando il valore di stringapassta che ha in QUEL momento, ovvero null.


    Consiglio: prendi un buon libro su Java e parti dall'inizio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ascolta. La inizializzazione di URL

    private static String URL = "http:\\"+stringapassta+"gino.it";

    essendo static viene eseguita quando la classe viene caricata. E quindi avviene PRIMA che tu arrivi ad invocare setStringapassta dal main. E URL viene inizializzato con la stringa composta usando il valore di stringapassta che ha in QUEL momento, ovvero null.


    Consiglio: prendi un buon libro su Java e parti dall'inizio.
    Grazie del consiglio ma alle volte le cose banali sono le più difficili ho comperato due libri ma alle volte non basta e cerco di chiedere consigli a persone piu brave.

    Come fareste questa memorizzazione? lasciando perdere Le classi statichè? Memorizzando direttamente le stringhe nella classe dove richieste?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Nio74 Visualizza il messaggio
    Come fareste questa memorizzazione? lasciando perdere Le classi statichè? Memorizzando direttamente le stringhe nella classe dove richieste?
    Ma cosa devi fare esattamente? Vuoi fare una classe "bean" che contiene semplicemente dei dati? O una classe "singleton" per la configurazione? O che altro?
    Spiega il concetto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ma cosa devi fare esattamente? Vuoi fare una classe "bean" che contiene semplicemente dei dati? O una classe "singleton" per la configurazione? O che altro?
    Spiega il concetto.

    Voglio fare una classe che contenga le stringhe che uso sulla app e semplicemente vorrei che alcune di queste contenessero il valore di una variabile passata dall'esterno.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.