每天都会有很多这样的问题type https://stackoverflow.com/questions/10978788/how-to-share-variables-between-classes-in-java#comment14339055_10978788 on SO:
如何从另一个变量获取变量Activity
?
答案通常建议使用SharedPreferences
or Intent.putExtra()
.
对我来说,一个getter
method 是从另一个类访问变量的方法。毕竟,Activity
正在考虑的是一个类,它的变量是类成员。
为什么 getter 方法不优于 SharedPreferences 或 Intent extras 等方法?
我正在谈论需要在活动之间访问变量的简单情况,例如:
class OneClass extends Activity {
int a;
..
// some changes to a
..
}
然后在另一个班级(Activity
):
class SomeOtherClass extends Activity {
..
// trying to access a here
..
}
Is a getter
这里的方法正确与否?
再说一遍——我并不是在谈论这些事情实际上是正确的方法的场景。SharedPreferences
用于少量数据的持久存储,extras
正如文档所说:这可用于向组件提供扩展信息。例如,如果我们有一个发送电子邮件消息的操作,我们还可以在此处包含额外的数据来提供主题、正文等。
由于某些答案可能表明存在某些情况,例如无法保证其他情况Activity
活着,我想有更多可能和正确的理由来解释为什么人们建议追求意图和共同偏好。
你的问题的答案有两个:
- 对于meta方面,无论如何,它属于meta SO,许多新手程序员看到Android,想要编写应用程序,并且不喜欢Java。
- 对于另一个问题,通常使用 getter 和 setter 是行不通的,因为您无法以直接的方式在 Activity 之间传递对象。虽然从技术上讲您可以使用 Parcelable 来完成此操作,但不建议这样做,更好的方法是使用意图在应用程序组件之间传递数据。
- 这里强调的另一点是 Android 应用程序应该在组件内保留最少量的状态。我认为这是Android的巨大成功。如果您查看现有的应用程序,就会发现平均而言,全局状态比用 Java 编写的典型程序要少得多。程序也更小,这是可以预料的,但是原子活动可以代表单个屏幕的状态,并且任何单个屏幕通常不会在整个应用程序中保留那么多状态,这导致应用程序组件之间有良好的逻辑分离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)