使用文本框背景颜色和内容作为程序状态指示器

Using textbox background color and content as program status indicator

我想创建一个指示器,可以清楚地向用户显示我的应用程序的某个功能是 "ON" 还是 "OFF"。理想情况下,白色字体和黑色背景的文本框会显示 "OFF",这将更改为绿色背景和黑色字体显示 "ON"。实现这个的最佳方法是什么? XML 代码可能是这样的,

<LinearLayout
     android:orientation="horizontal"
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"
     android:gravity="right">
 <TextView
    style="@style/colorSizeStylexml"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dip"
    android:text="Tracklog: " />

     <TextView
         android:id="@+id/textView"
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:gravity="center"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:layout_marginRight="10dip"
         android:text="ON"
         android:background="#ff58ff2d"
         android:textStyle="bold" />
 </LinearLayout>

像这样的布局,

虽然我可以想象主要在 JAVA 中进行布局和条件,但我怀疑在 XML 中保留尽可能多的布局是首选。 最好的方法是什么? TIA

更新 这是已实施的答案,

public void setTracklogOnOffIndicator(View v){
    tvOn = (TextView) v.findViewById(R.id.textViewOn);
    tvOff = (TextView) v.findViewById(R.id.textViewOff);

    if(MainActivity.iTrackLogFlag == 0) {//tracklog is OFF
        tvOff.setVisibility(View.VISIBLE);
        tvOn.setVisibility(View.GONE);
    }else if((MainActivity.iTrackLogFlag == 1)){//tracklog is ON
        tvOff.setVisibility(View.GONE);
        tvOn.setVisibility(View.VISIBLE);
    }
}

...以及 XML、

     <TextView
         android:id="@+id/textViewOff"
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:gravity="center"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:layout_marginRight="10dip"
         android:text="OFF"
         android:background="#ff000000"
         android:textStyle="bold"
         android:focusableInTouchMode="true"
         android:textColor="#ffffffff" />
     <TextView
         android:id="@+id/textViewOn"
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:gravity="center"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:layout_marginRight="10dip"
         android:text="ON"
         android:background="#ff58ff2d"
         android:textStyle="bold" />

您可以定义两个 TextView,每个状态一个,然后在您的代码中翻转可见性。

onTextView.setVisibility(View.VISIBLE);
offTextView.setVisibility(View.GONE);

反之亦然。