java - Android - 如何根据 if else 语句的返回值设置界面颜色

标签 java android android-layout android-activity

在我的文件 Activity (java)中,我有 if else 语句,它保存(条件)的值以及需要传递给接口(interface)的值。将值传递到界面后,界面的颜色应基于该值(条件)。

条件为“正常”、“高血压”、“血压1级”和“血压2级”。

例如,如果情况“正常”,则界面的颜色应为绿色。

这是 if else 代码:

if (iBPM >= 60 && iBPM < 79) {
            condition = "Normal resting heart rate";
        }
else if (iBPM >= 80 && iBPM <= 89) {
            condition = "Prehypertension";
        }
else if (iBPM >= 90 && iBPM <= 99) {
            condition = "High Blood Pressure \n (Hypertension) stage 1";
        }
else if (iBPM >= 100 && iBPM <= 110) {
            condition = "High Blood Pressure \n (Hypertension) stage 2";
        }
        txtCON.setText("" + condition);

下面是布局条件的代码。 ID 是tvCondition。 id 用于从文件 Activity (java) 中获取条件值。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="--"
    android:id="@+id/tvCondition"
    android:layout_below="@+id/txtLabe2"
    android:layout_alignParentLeft="true" />

基本上界面的颜色是蓝色,因为我将其设置为界面的默认颜色。我将索引颜色放在顶部#737CA1

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout"
android:weightSum="1"
android:background="#737CA1">

回到问题,如何根据 Activity 文件中的 if else 语句的值更改界面的颜色。

谢谢你, 费扎尔

最佳答案

我得到了答案。但这个答案是根据java文件中的IF ELSE语句更改文本颜色,而不是更改背景颜色

步骤1:

private static TextView txtCOL = null;
private static TextView txtCON = null;

步骤2:

txtCON = (TextView) findViewById(R.id.tvCondition);
txtCOL = (TextView) findViewById(R.id.tvCondition);

第三步:

String condition = null;
int conditionColor;

第四步:

if (iBPM >= 50 && iBPM < 60) {
            condition = "Low / weak heart rate";
            conditionColor = Color.parseColor("#2196f3"); //blue
        }
        else if (iBPM >= 60 && iBPM < 79) {
            condition = "Normal resting heart rate";
            conditionColor = Color.parseColor("#689f38"); //green
        }
        else if (iBPM >= 80 && iBPM <= 89) {
            condition = "PreHypertension";
            conditionColor = Color.parseColor("#ffeb3b"); //yellow
        }
        else if (iBPM >= 90 && iBPM <= 99) {
            condition = "High Blood Pressure \n (Hypertension) stage 1";
            conditionColor = Color.parseColor("#ff9800"); //orange
        }
        else if (iBPM >= 100 && iBPM <= 110) {
            condition = "High Blood Pressure \n (Hypertension) stage 2";
            conditionColor = Color.parseColor("#ff5722"); //deep orange
        }

第五步:

//call textView.setTextColor(conditionColor) just before calling textVIew.setText(condition)   
txtCOL.setTextColor(conditionColor);
txtCON.setText("" + condition);

完成。

关于java - Android - 如何根据 if else 语句的返回值设置界面颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232488/

相关文章:

java - 跟踪谁请求哪些数据的最佳方法?

android - 安卓服务器

android - EditText 不显示键盘

java - 返回值的 Java 类型参数问题

java - 从对象列表中查找三分位数

java - 在 netbeans 中运行 Web 应用程序

android - Google Map Fragment 不保存状态/不会添加标记以映射 onResume

javascript - 如何忽略 React Native 中的导入失败?

android - 用几行代码设置 LayoutParams

android - 图像放入 CollapsingToolbarLayout 时会忽略 scaleType