Я хотел бы создать индикатор, который бы четко показывал пользователю, является ли какая-то особенность моего приложения «ВКЛЮЧЕНА» или «ВЫКЛ». В идеале текстовое поле с белым шрифтом и черным фоном с надписью «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. Каков наилучший способ сделать это? ТИА
Update Вот ответ как это реализовано,
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" />