Скажімо, у моєму виклику API у мене є параметр, який називається color. Чи можна редагувати або модифікувати існуючий R.colors.colorдля призначення кольору з результату API?
Як приклад:
Я телефоную до свого API, і він повертається green, тепер я хочу завантажити свою програму тобто (зелений Toolbar, зелений TextViewколір тощо), чи можливо це?
Моя перша думка була:
Створіть елемент на colors.xmlвикликаному, demoпотім призначте йому колір за замовчуванням, а потім використовуйте цей demoколір, де я хочу ( Button, TextViewтощо) Тоді я подумав, що це можливо програмно змінити це значення з результатом з API, тому мені не потрібно буде створити SharedPreferencesабо щось подібне і для уникнення додаткового коду.
На жаль, вам доведеться встановлювати колір тексту або переглядати скрізь вручну ... :(
Я хотів би, щоб це було іншим способом, оскільки я не знаю, скільки Activitiesміститиме мій проект, тому, якщо є інший спосіб це зробити, я радий почути інші здогади.
РЕДАГУВАТИ
Я намагаюся відповісти @Jared Rummler, і, можливо, я роблю щось не так ... Я створив простий Jsonі розмістив свої активи, аналізую Jsonі ставлю наGlobalConstant потім зробив "просте додаток".
Перш за все, у мене є а 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));