2011-11-14 21 views
1

我想在单击按钮时在我的应用程序中更改10-15 TextView的文本颜色。这些文本视图不在单个活动上。除了使用主题概念之外,还有其他方法可以实现吗?从活动中更改多个文字浏览的文本颜色

+0

相同颜色或不同颜色? –

+0

相同的颜色。我的主要问题是如何参考所有文字浏览atonce – includeMe

回答

3

您可以创建一个ArrayListTextView,并且每次创建TextView(当您第一次启动应用程序时)要更改文本颜色时,都将其添加到此ArrayList中。 稍后当用户点击你的按钮时,你调用一个方法在这个ArrayList上实现一个循环,并设置你的文本颜色。

可能需要静态ArrayList才能实现此目的。

ArrayList<TextView> myAlTv = new ArrayList<TextView>(); 
     myAlTv.add(firstTv); 
     myAlTv.add(secondTv); 
     myAlTv.add(thirdTv); 
     //... 

public void changeColor() 
{ 
    for (int i = 0; i < myAlTv.size(); i++) 
    { 
     myAlTv.get(i).setTextColor(0xFFFF0000); 
    } 
} 
+0

认为这将解决我的问题..但没有一个更简单的方法吗? – includeMe

+0

不是我可以看到,对不起...等一下,也许有人更聪明会帮助你。 – mthpvg

+0

您可能可能会改变每个Activity的颜色方法,改变此特定Activity中TextView的颜色,并将布尔值更改为true。因此,当你重新构建布局时,当你开始另一个活动时,你的布局会注意到布尔值会改变他的值,所以会用新的颜色创建TextViews ......这很麻烦,不知道你是否明白我的观点。 – mthpvg

2

你可以使用sharedPreferences来做到这一点。当您单击按钮时,您可以将textviews应该具有的颜色保存到sharedPreferences对象中。然后在其他活动中,您可以通过获取之前设置的sharedPreference来检索这些颜色值,并且可以轻松地将这些颜色值分配给其他活动中的文本视图。

+0

保存和检索选定的颜色不是问题。有没有办法引用所有的文本视图,而无需为文本视图创建对象,更改其颜色,然后为下一个创建对象.. – includeMe

+1

您不能访问对象而不创建它们,但像我说过的,您可以设置此属性然后随时分配给他们。 –