您可以通过多种方式访问其他类或 Activity 中的变量或对象。
A.数据库
B.共享偏好。
C.对象序列化。
D.可以保存公共数据的类可以命名为 Common Utilities,这取决于您。
E.通过 Intents 和 Parcelable 接口传递数据。
这取决于您的项目需求。
A. 数据库
SQLite 是一个嵌入到 Android 中的开源数据库。 SQLite 支持标准的关系数据库功能,如 SQL 语法、事务和准备好的语句。
教程 -- http://www.vogella.com/articles/AndroidSQLite/article.html
B. 共享偏好
假设您要存储用户名。所以现在会有两个东西一个Key用户名,ValueValue。
如何储存
// Create an 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(),putInt(),putFloat(),putLong() 可以保存所需的数据类型。
如何获取
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String userName = sharedPref.getString("userName", "Not Available");
http://developer.android.com/reference/android/content/SharedPreferences.html
C. 对象序列化
如果我们想要保存对象状态以通过网络发送它,或者您也可以将其用于您的目的,则使用对象序列化。
使用 java bean 并将其作为他的字段之一存储在其中,并为此使用 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);
然后使用对象序列化来序列化这个对象,并在你的其他类中反序列化这个对象。
在序列化中,对象可以表示为一个字节序列,其中包括对象的数据以及有关对象类型和对象中存储的数据类型的信息。
序列化的对象写入文件后,可以从文件中读取并进行反序列化,即表示对象及其数据的类型信息和字节可用于在内存中重新创建对象。
如果你想要这个教程参考这个链接
http://javawithswaranga.blogspot.in/2011/08/serialization-in-java.html
Get variable in other classes
D. CommonUtilities
您可以自己创建一个类,其中可以包含您在项目中经常需要的常用数据。
示例
public class CommonUtilities {
public static String className = "CommonUtilities";
}
E. 通过 Intent 传递数据
有关传递数据的选项,请参阅本教程。
http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/