android - Shared Preferences store always the last parameter -
i storing preferences of app in shared prefences.
the problem when try preferences stored same value, in specific, last value store when create "session"
this code when click in button store preferences
//button store preferences if connection ftp succefully final textview guardarconexionconftp= (textview)findviewbyid(r.id.label_guardar_conexionconftp); guardarconexionconftp.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { strictmode.threadpolicy policy = new strictmode.threadpolicy.builder().permitall().build(); strictmode.setthreadpolicy(policy); ftphandler ftp = new ftphandler(configactivity.this); textview dirftp= (textview)findviewbyid(r.id.dirftp); textview userftp= (textview)findviewbyid(r.id.userftp); textview passftp= (textview)findviewbyid(r.id.passftp); textview logoutconexionconftp= (textview)findviewbyid(r.id.label_guardar_conexionconftp); string[] ftpurl = dirftp.gettext().tostring().split(":"); string ftpuser = userftp.gettext().tostring(); string ftppass = passftp.gettext().tostring(); if(ftpurl.length < 2) system.out.println("direccion"); else if(ftpuser.length() == 0) system.out.println("user"); else if(ftppass.length() == 0) system.out.println("pass"); else{ if(ftp.ftpconnect(ftpurl[0], ftpuser, ftppass, integer.parseint(ftpurl[1]))){ //store preferences sessionmanager session2; session2 = new sessionmanager(configactivity.this); system.out.println(ftpurl[0].tostring() + " " + ftpuser.tostring() + " " + ftppass.tostring() + " " + ftpurl[1].tostring()); session2.createftploginsession(ftpurl[0].tostring(), ftpuser.tostring(),ftppass.tostring(),ftpurl[1].tostring()); guardarconexionconftp.setvisibility(view.gone); logoutconexionconftp.setvisibility(view.visible); findviewbyid(r.id.camposconexion).setvisibility(view.visible); editftp.settext("conectado con ftp"); findviewbyid(r.id.camposftp).setvisibility(view.gone); system.out.println("disconnect " + ftp.ftpdisconnect()); system.out.println("print stored: " + session2.getftpurl() + " " + session2.getftpuser() + " " + session2.getftppass() + " " + session2.getftpport()); } else toast.maketext(configactivity.this, "no ha sido posible conectarse", toast.length_short).show(); } } }); and class store , read sharedpreferences
package com.asde.telemedicina; import java.util.hashmap; import android.content.context; import android.content.intent; import android.content.sharedpreferences; import android.content.sharedpreferences.editor; import android.net.wifi.wifiinfo; import android.net.wifi.wifimanager; import android.os.bundle; import android.widget.toast; public class sessionmanager { // shared preferences sharedpreferences pref; // editor shared preferences editor editor; // context context _context; // shared pref mode int private_mode = 0; // sharedpref file name private static final string pref_name = "telemedicinapref"; // shared preferences keys private static final string is_login = "false"; private static final string is_loginftp = "false"; private static final string key_nombre = "name"; private static final string key_registro = "regcode"; private static final string key_colegiado = "colecode"; private static final string key_idioma = "es"; private static final string key_tidioma = "notset"; private static final string key_password = "pass"; private static final string key_piracy = "mathafucka"; private static final string key_urlftp = ""; private static final string key_userftp = ""; private static final string key_passftp = ""; private static final string key_portftp = ""; // email address (make variable public access outside) public static final string key_update = "notasked"; // constructor public sessionmanager(context context){ this._context = context; pref = _context.getsharedpreferences(pref_name, private_mode); editor = pref.edit(); } /** * create login session * */ public void createloginsession(string n, string r, string col,string l){ // storing login value true editor.putboolean(is_login, true); // storing regcode in pref editor.putstring(key_nombre, n); // storing regcode in pref editor.putstring(key_registro, r); // storing regcode in pref editor.putstring(key_colegiado, col); // storing email in pref editor.putstring(key_idioma, l); // set piracy system editor.putstring(key_piracy, getmw()); // commit changes editor.commit(); } public void createftploginsession(string url, string user, string password,string port){ system.out.println(url + " " + user + " " + password + " " + port); // storing login value true editor.putboolean(is_loginftp, true); // storing url ftp in pref editor.putstring(key_urlftp, url); // storing userftp in pref editor.putstring(key_userftp, user); // storing ftp pass in pref editor.putstring(key_passftp, password); // storing ftp port in pref editor.putstring(key_portftp, port); // commit changes editor.commit(); } public string getftpurl(){ return pref.getstring(key_urlftp, null); } public string getftpuser(){ return pref.getstring(key_userftp, null); } public string getftppass(){ return pref.getstring(key_passftp, null); } public string getftpport(){ return pref.getstring(key_portftp, null); } public string getpiracy(){ return pref.getstring(key_piracy, null); } public string getmw(){ wifimanager wifimanager = (wifimanager) _context.getsystemservice(_context.wifi_service); wifiinfo winfo = wifimanager.getconnectioninfo(); string macaddress = winfo.getmacaddress(); return macaddress; } public string getlanguage(){ return pref.getstring(key_idioma, null); } public void settlanguage(string l) { editor.putstring(key_tidioma, l); editor.commit(); } public string gettlanguage() { return pref.getstring(key_tidioma, "null"); } /** * check login method wil check user login status * if false redirect user login page * else won't * */ public void checklogin(){ // check login status if(!this.isloggedin()){ // user not logged in redirect him login activity intent = new intent(_context, loginactivity.class); // closing activities i.addflags(intent.flag_activity_clear_top); // add new flag start new activity i.setflags(intent.flag_activity_new_task); // staring login activity _context.startactivity(i); } } public void checkftplogin(){ // check login status if(!this.isloggedinftp()){ // // user not logged in redirect him login activity // intent = new intent(_context, loginactivity.class); // // closing activities // i.addflags(intent.flag_activity_clear_top); // // // add new flag start new activity // i.setflags(intent.flag_activity_new_task); // // // staring login activity // _context.startactivity(i); } } /** * stored session data * */ public hashmap<string, string> getuserdetails(){ hashmap<string, string> user = new hashmap<string, string>(); // user name user.put(key_registro, pref.getstring(key_registro, null)); // user email id user.put(key_nombre, pref.getstring(key_nombre, null)); // return user return user; } /** * clear session details * */ public void logoutftpuser(){ // storing login value true editor.putboolean(is_loginftp, false); // storing url ftp in pref editor.putstring(key_urlftp, ""); // storing userftp in pref editor.putstring(key_userftp, ""); // storing ftp pass in pref editor.putstring(key_passftp, ""); // storing ftp port in pref editor.putint(key_portftp, 0); // commit changes editor.commit(); } /** * quick check login * **/ // login state public boolean isloggedin(){ return pref.getboolean(is_login, false); } // login state public boolean isloggedinftp(){ return pref.getboolean(is_loginftp, false); } } always store in keys last prefence try store, ex: if last parameter port in key_portftp, when try print of other keys print key_portftp value.
must silly not able see can me?
public void logoutftpuser(){ // storing login value true editor.putboolean(is_loginftp, false); // storing url ftp in pref editor.putstring(key_urlftp, ""); // storing userftp in pref editor.putstring(key_userftp, ""); // storing ftp pass in pref editor.putstring(key_passftp, ""); // storing ftp port in pref editor.putint(key_portftp, 0); // commit changes editor.commit(); } instead of can use follow public void logoutftpuser(){ // storing login value true editor.putboolean(is_loginftp, false); editor.commit(); // storing url ftp in pref editor.putstring(key_urlftp, ""); editor.commit(); // storing userftp in pref editor.putstring(key_userftp, ""); editor.commit(); // storing ftp pass in pref editor.putstring(key_passftp, ""); editor.commit(); // storing ftp port in pref editor.putint(key_portftp, 0); // commit changes editor.commit(); } , can items. once assign value 1 key. should commit editor. then,only can value
Comments
Post a Comment