Скажімо, у моєму виклику 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));