Скажем, по моему вызову API у меня есть параметр, который называется color
. Можно ли отредактировать или изменить существующий R.colors.color
, чтобы назначить цвет из результата API?
В качестве примера:
Я вызываю свой API и возвращает green
, теперь я хочу загрузить мое приложение с i.e(зеленый цвет Toolbar
, зеленый цвет TextView
и т.д.), возможно ли это?
Моя первая мысль была:
Создайте элемент colors.xml
под названием demo
, затем назначьте его по умолчанию, затем используйте цвет demo
, где бы я ни захотел (Button
, TextView
и т.д.). Тогда я подумал, что это возможно чтобы программно изменить это значение с помощью API, поэтому мне не нужно было бы создавать SharedPreferences
или что-то в этом роде и избегать большего количества кода.
Как @Y.S. сказал мне
К сожалению, вам нужно установить цвет текста или просмотреть вручную всюду...:(
Я хотел бы, если есть другой способ сделать это, так как я не знаю, сколько будет Activities
моего проекта, поэтому, если есть другой способ сделать это, я рад услышать другие догадки.
ИЗМЕНИТЬ
Я пытаюсь ответить @Jared Rummler и, возможно, я что-то делаю неправильно... Я создал простой Json
, и я надел свои Активы, я разбираю Json
, и я положил его на GlobalConstant
, тогда я сделал "простое приложение".
Прежде всего, у меня есть TextView
и a Button
, который содержит "your_special_color", и его возвращение я помещаю 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));