我正在尝试将会话存储变量放入类中。请查看我的实际代码
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;
}
}
现在我在会话中存储了一个值,我想在上面的代码中使用。 Imageurlname
是从数据库中获取的URL。我想在网址上添加额外内容。例如
这是我的URl Getting form数据库http://example.com?id=
我在会话中存储了用户ID,因此将两个url合并为http://example.com?id=5
请参阅我修改后的代码
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正在收到错误。我希望你能理解。
答案 0 :(得分:1)
看起来问题在于保存用户ID就是因为这个原因。
以下是解决方案:
解决方案1: 使用静态变量
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";
}
您可以通过这种方式设置和访问值。
Log.d("Default Value",Example.USER_ID);
//setting user id here
Example.USER_ID = "Manikanta Garikipati";
Log.d("Updated value",Example.USER_ID);
解决方案2:使用共享偏好设置。
正如你已经知道的那样,无论如何我会解释。
如果您的问题仍未解决,请在下面进行评论。
以下是问题的简要摘要
问题不在共享偏好中,也不在任何存储中。
不是单独创建bean并将值设置为bean,而是使用Activity等扩展bean ..这使得事情变得混乱......
那些想要完整解决方案的人可以通过相关对话进行讨论。
答案 1 :(得分:0)
应用程序类适合您。使用它并保存您的应用程序级别数据,如下所示:
public class WhatEverApp extends Application
{
String mApplicationLevelVar = "Hello";
}
WhatEverApp
将是manifest.xml
Look这里有关于Application类的详细讨论。