У меня есть следующие стили в styles.xml
:
<style name="tabSelected">
<item name="android:textColor">#FFFFFF</item>
<item name="android:background">#0000ff</item>
</style>
<style name="tabUnselected">
<item name="android:textColor">#0000ff</item>
<item name="android:background">#FFFFFF</item>
</style>
И у меня есть два TextViews
в моей деятельности. Когда я нажимаю первый TextView
, я хочу добавить к нему стиль tabSelected
и удалить из него tabUnselected
, а когда я нажимаю второй TextView
, я хочу добавить к нему стиль tabSelected
и удалить tabUnselected
из него:
Я попробовал следующее:
exhibitionAreaTextView.Click += delegate
{
exhibitionAreaTextView.SetTextAppearance(Resource.Style.tabSelected);
multipurposeRoomTextView.SetTextAppearance(Resource.Style.tabUnselected);
};
multipurposeRoomTextView.Click += delegate
{
multipurposeRoomTextView.SetTextAppearance(Resource.Style.tabSelected);
exhibitionAreaTextView.SetTextAppearance(Resource.Style.tabUnselected);
};
Но это изменило только textColor
из TextViews
. Я видел другое решение:
ContextThemeWrapper newContext = new ContextThemeWrapper(baseContext, R.style.MyStyle);
textView= new TextView(newContext);
Но он создает новый экземпляр TextViews
, и я не знаю, сработает ли его событие click
после этого, и больше это 2 строки Решение, если это будет 2 строки, я бы лучше сказал:
multipurposeRoomTextView.SetTextColor(#ffffff);
multipurposeRoomTextView.SetBackgroundColor(#0000ff);
Это будет более читабельным. Это способ установить стиль с одним свойством программно, что-то вроде этого multipurposeRoomTextView.SetStyle(MyStyle)
?