有几种方法可以访问其他类或Activity中的变量或对象。
A.数据库
B.共享偏好。
C.对象序列化。
可以保存公共数据的类可以命名为公共实用程序。这取决于你。
E.通过Intents和Parcelable接口传递数据。
这取决于您的项目需求。
A.数据库
SQLite是一个嵌入到Android中的开源数据库。SQLite支持标准的关系数据库功能,如SQL语法、事务和准备好的语句。
教程
B.共享偏好
假设您想存储用户名。所以现在有两件事,一个关键用户名,一个值。
如何存储
// Create object of SharedPreferences.
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
//Now get Editor
SharedPreferences.Editor editor = sharedPref.edit();
//Put your value
editor.putString("userName", "stackoverlow");
//Commits your edits
editor.commit();
使用putString()、putBoolean()、put Int()、putFloat()和putLong(),可以保存所需的数据类型。
如何获取
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String userName = sharedPref.getString("userName", "Not Available");
http://developer.android.com/reference/android/content/SharedPreferences.html
C.对象序列化
如果我们希望保存对象状态以通过网络发送,或者您也可以将其用于您的目的,则使用对象序列化。
使用Javabean并将其存储为他的一个字段,并使用getter和setter。
JavaBean是具有财产的Java类。想想作为私有实例变量的财产。因为他们是私人的可以通过类中的方法从类外部访问它们。更改属性值的方法称为setter方法,检索属性值的方式称为getter方法。
public class VariableStorage implements Serializable {
private String inString;
public String getInString() {
return inString;
}
public void setInString(String inString) {
this.inString = inString;
}
}
使用
VariableStorage variableStorage = new VariableStorage();
variableStorage.setInString(inString);
然后使用对象序列化来序列化此对象,并在其他类中反序列化此对象。
在串行化中,对象可以表示为一个字节序列,其中包括对象的数据以及关于对象类型和存储在对象中的数据类型的信息。
序列化对象写入文件后,可以从文件中读取并反序列化。也就是说,表示对象及其数据的类型信息和字节可用于在内存中重新创建对象。
如果您需要此教程,请参阅:
Java序列化(博客文章)获取其他类中的变量(堆栈溢出)
D.公用设施
您可以自己创建一个类,其中可以包含项目中经常需要的公共数据。
样品
public class CommonUtilities {
public static String className = "CommonUtilities";
}
E.通过意图传递数据
有关传递数据的选项,请参考教程Android–使用Parcelable类在活动之间传递包裹数据。