存储Android视图的变量(按钮,TextView等)

时间:2011-10-24 23:24:54

标签: android variables android-layout views

我目前有一个应用程序,每个android视图存储大约10个变量,其中所有视图都需要动态更改其变量。如何以有效的方式存储这些变量的最佳方式和/或代码更少,因为截至目前我有大约200个变量,每个变量被调用4次以更改变量。

所以这样:

String buttonName = "blah";

buttonName = newValue;

使用ArrayList会保存更多代码并帮助OOD吗?此外,大多数观点都有整数,浮点数和&分配给它们的字符串变量。我需要一种很好的方法来保存可能适用于所有需要不同值的多个视图的代码。有任何想法吗?任何帮助将不胜感激!谢谢!

3 个答案:

答案 0 :(得分:2)

我会扩展您正在使用的任何视图,并将其他变量存储在扩展类中......

 //constructor
 public class MyButton extends Button{
   public String someVariable;
   public Button(Context c){
       super(c);
   }

 }

然后在您的代码中,您将使用它... ...

MyButton b = new MyButton(this);
b.someVariable = "foofy"; 

答案 1 :(得分:1)

我不确定我完全理解你的意思。但我会试一试。

如果我是你,我会创建一个“Holder”类,其中包含您需要存储的所有变量。然后,一旦实例化该类的Object并填充值,就可以使用view.setTag(Object);方法将其“附加”到特定视图。每当您需要检索它们时,您可以使用(YourHolderClass)view.getTag();找到对持有者对象的引用。请注意,getTag将返回一个普通对象,您必须将其强制转换。标签对象将始终与该视图保持一致,因此您始终可以检索它

编辑:View.setTag() javadoc

答案 2 :(得分:0)

您是否需要更改这些变量,然后在UI中显示其新值?如果是这样,您可以简单地使用一种方法在UI中设置显示值。你可以在onCreate或onResume期间调用它,然后在某些值发生变化时再调用它。您还可以使用自定义视图封装,然后调用invalidate以便重新绘制。