2016-10-30 2 views
-1

ich versuche, Session gespeicherte Variable in eine Klasse zu bekommen. bitte sehen Sie meinen tatsächlichen Code für KlasseWie bekomme ich die Sitzungsvariable in die Klasse android

public class GetDataAdapter { 

     public String ImageServerUrl; 
     public String ImageTitleName; 
     public String ImageUrlName; 



     public String getImageServerUrl() { 
      return ImageServerUrl; 
     } 

     public void setImageServerUrl(String imageServerUrl) { 
      this.ImageServerUrl = imageServerUrl; 
     } 

     public String getImageTitleName() { 
      return ImageTitleName; 
     } 

     public void setImageTitleNamee(String Imagetitlename) { 
      this.ImageTitleName = Imagetitlename; 
     } 

     public String getImageUrlName() { 
      return ImageUrlName; 
     } 

     public void setImageUrlNamee(String Imageurlname) { 
      this.ImageUrlName = Imageurlname; 
     } 

    } 

jetzt habe ich einen Wert in Sitzung gespeichert und ich möchte in den obigen Code verwenden. Imageurlname ist eine URL, die aus der Datenbank abgerufen wird. Ich möchte extra zur URL hinzufügen. zum Beispiel

dies ist mein URl Erste Form Datenbank http://example.com?id= i in der Sitzung gespeichert Benutzer-ID sollte so sein, sowohl url Kombination http://example.com?id=5

bitte meinen modifizierten Code

public class GetDataAdapter extends AppCompatActivity { 

    public String ImageServerUrl; 
    public String ImageTitleName; 
    public String ImageUrlName; 

    private Session session; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     session = new Session(GetDataAdapter.this); 

     HashMap<String, String> user = session.getUserDetails(); 
     final String Uid = user.get(session.KEY_UID); 

    } 


    public String getImageServerUrl() { 
     return ImageServerUrl; 
    } 

    public void setImageServerUrl(String imageServerUrl) { 
     this.ImageServerUrl = imageServerUrl; 
    } 

    public String getImageTitleName() { 
     return ImageTitleName; 
    } 

    public void setImageTitleNamee(String Imagetitlename) { 
     this.ImageTitleName = Imagetitlename; 
    } 

    public String getImageUrlName() { 
     return ImageUrlName; 
    } 

    public void setImageUrlNamee(String Imageurlname) { 
     this.ImageUrlName = Imageurlname + Uid; 
    } 


} 

Uid wird immer Fehler sehen. ich hoffe, Sie verstehen.

+0

Ich habe eine Frage zur Lösung gestellt. nicht für negative Stimmen. –

+0

Bleibt die Benutzer-ID immer gleich?, Ich meine Benutzer ist im Fall usw. eingeloggt? – Manikanta

+0

ja das selbe wie pro Benutzer. Bitte seht meine beiden Codes. ist es meine Art der Modifizierung richtig? –

Antwort

1

Sieht aus wie das Problem ist mit der persistent die Benutzer-ID in Ihrem Fall ist es aus diesem Grund.

  1. Instanz Variable Benutzer-ID zu speichern, die Sie erhalten, wenn Sie das gleiche Objekt erhalten

Hier sind die Lösung (en):

Lösung 1: Verwenden von statischen Variablen

public class Example { 

    //this is the default value which will there stored before we are setting our actual userId 

    public static String USER_ID="DefaultId"; 
} 

Sie können die Werte auf diese Weise festlegen und darauf zugreifen.

Log.d("Default Value",Example.USER_ID); 

     //setting user id here 
     Example.USER_ID = "Manikanta Garikipati"; 

     Log.d("Updated value",Example.USER_ID); 

Lösung 2: Verwenden von gemeinsamen Voreinstellungen.

Wie Sie bereits wissen, würde ich es trotzdem erklären.

Kommentar unten, wenn Ihr Problem immer noch nicht gelöst ist.

Hier ist die kurze Zusammenfassung des Problems

Das Problem ist nicht in gemeinsamen Vorlieben weder beliebigen Speicher.

Statt eine Bohne allein zu schaffen und die Einstellung der Werte, um es, Bohne mit Aktivität erweitert etc .. die Dinge drunter und drüber gemacht ..

Diejenigen, die die komplette Lösung wollen durch das Gespräch in Frage gehen kann.

+0

zeigt immer noch Null an –

0

Anwendungsklasse ist für Sie da. sie verwenden und Ihre Anwendungsebene Daten speichern, wie folgt aus:

public class WhatEverApp extends Application 
{ 
    String mApplicationLevelVar = "Hello"; 
} 

WhatEverApp wird der Name Ihrer App in manifest.xml

Look hier für eine detaillierte Diskussion über die Anwendungsklasse verwendet werden.

Verwandte Themen