【问题标题】:Android Display Color is Different From ViewModel ClassAndroid 显示颜色与 ViewModel 类不同
【发布时间】:2023-03-04 20:33:02
【问题描述】:

我正在尝试获取在 colors.xml 中声明的颜色值并尝试从 ViewModel 类中获取。在 ViewModel 类中,颜色显示正确,但当我在模拟器上运行应用程序时,颜色显示不同。 我使用 MutableLiveData 从 colors.xml 中获取颜色值。您有什么想法可以从 ViewModel 中获得正确的颜色吗?

非常感谢

这是我的代码

public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
    root = inflater.inflate(R.layout.fragment_timetable, container, false);

    TimeTableViewModel timeTableViewModel = ViewModelProviders.of(this).get(TimeTableViewModel.class);
timeTableViewModel.get_text_bg_red().observe(getViewLifecycleOwner(), new Observer<Integer>() {
        @Override
        public void onChanged(Integer integer) {
            mon_textView_10.setBackgroundColor(integer);
            mon_textView_11.setBackgroundColor(integer);
        }
    });
return root;
}

public class TimeTableViewModel extends ViewModel {

private MutableLiveData<Integer> text_bg_red;

public TimeTableViewModel() {

    text_bg_red = new MutableLiveData<>();
    text_bg_red.setValue(R.color.colorAccent);
}

LiveData<Integer> get_text_bg_red(){
    return text_bg_red;
}}

【问题讨论】:

    标签: android mvvm viewmodel android-viewmodel android-color


    【解决方案1】:

    在您的活动 XML 或 Android 清单(活动声明)中,检查您正在使用的主题,它可能会被其他具有 colorAccent 的主题覆盖。如果不尝试将 colorAccent 重命名为其他名称,例如colorBgRed,然后重建并尝试。

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 1970-01-01
      • 2016-02-24
      • 2014-06-29
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多