내 API 호출에라는 매개 변수가 있다고 가정 해 보겠습니다 color
. R.colors.color
API 결과에서 색상을 할당하기 위해 존재를 편집하거나 수정할 수 있습니까?
예로서:
내 API를 호출하면을 반환합니다 green
. 이제 내 앱을 (녹색 Toolbar
, 녹색 TextView
등) 로드하고 싶습니다 . 가능합니까?
내 첫 생각은 :
에 항목을 만들기 colors.xml
라는 demo
이 사용 후, 그것을 기본 색을 지정 다음을 demo
내가 원하는 목적지 색상을 ( Button
, TextView
, 등) 그런 다음 내가 필요하지 않을 그래서이 API의 결과로 프로그램이 값을 변경하는 것이 가능할 수 있다고 생각 창조하다SharedPreferences
같은 더 많은 코드를 피하거나 무언가를.
으로 @YS는 나에게 말했다
불행히도 텍스트의 색상을 설정하거나 모든 곳에서 수동으로 볼 수 있습니다 ... :(
Activities
내 프로젝트에 얼마나 많이 포함 될지 모르기 때문에 다른 방법이 있으면 좋겠다 . 그래서 다른 방법이 있으면 다른 추측을 듣고 기쁘다.
편집하다
나는 @Jared Rummler 대답을 시도하고 있고 아마도 내가 뭔가 잘못하고있을 것입니다 ... 나는 간단한 Json
것을 만들었고 나는 내 자산을 파싱하고 Json
그것을GlobalConstant
다음 "간단한 앱"을 만들었다.
우선 나는 "your_special_color"를 포함하는 a TextView
와 a Button
를 가지고 있으며 그 반환은 GlobalConstant int
다음과 같이 넣습니다 .
case "your_special_color":
return GlobalConstant.color;
그럼 내가 노력하는 것은 나의 최초의 Activity
1이 TextView
1을 Button
내가 전에 말했듯이 그들은 색상이 "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));