假设,在我的API调用中,我有一个称为的参数color
。是否可以编辑或修改现有内容R.colors.color
以从API结果中分配颜色?
举个例子:
我对我的API进行了调用,它返回green
,现在我想用ie(绿色Toolbar
,绿色TextView
等)加载我的应用程序,这可能吗?
我的第一个想法是:
创建一个对项目colors.xml
叫demo
然后分配给它一个默认的颜色,然后用这个demo
地方我想颜色(Button
,TextView
,等),那么我想这可能是可能与来自API的结果编程修改这个值,所以我不会需要创建一个SharedPreferences
或类似的东西,以避免更多的代码。
正如@YS对我说的
不幸的是,您将不得不设置文本的颜色或在任何地方手动查看... :(
我想知道是否还有其他方法可以做,因为我不知道Activities
我的项目将包含多少个,所以如果有其他方法可以做到,我很高兴听到其他猜测。
编辑
我正在尝试@Jared Rummler答案,也许我在做错什么...我创建了一个简单的应用程序,然后将其放在Json
我的Assets中进行解析,Json
然后将其放入GlobalConstant
一个“简单的应用程序”。
首先,我有一个TextView
和一个Button
包含“ your_special_color”的元素,返回的内容GlobalConstant int
如下:
case "your_special_color":
return GlobalConstant.color;
那么我试过是我第一次Activity
有1TextView
和1Button
正如我以前说过,他们有颜色“your_special_color”我不想改变它,但我有一个Intent
在我Button
打开另一个Activity
包含相同,但与GlobalConstant.color
它并没有改变。
我尝试这样做(我的第二个活动):
public class Main2Activity extends AppCompatActivity {
private Res res;
@Override public Resources getResources() {
if (res == null) {
res = new Res(super.getResources());
}
return res;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
我错过了什么?
哦..我想通了,我猜这是对我的MainActivity2
吗?
Button btn = (Button)findViewById(R.id.button2);
btn.setBackgroundColor(res.getColor(R.color.your_special_color));