我对一组TextViews和一个Button有一些意图。如果用户点击按钮,出现一些错误,我想更改一个TextView的外观。例如,将边框更改为红色,并将字体加粗。我为它写了一个样式,但在TextView上找不到方法setStyle。经过一番自学,我意识到Android不支持通过编程设置样式。在创建意向源时,有一些变通方法。但我的意图已经存在,重新创造它似乎很奇怪
你能告诉我正确的方法吗?
- 使用解决方法,然后再次创建TextView
- 忘记样式,使用java方法修饰现有的TextView
- 其他的东西
只需将这个xml属性android:visibility="gone"
添加到第二个文本视图中,因此第一个文本视图不显示,但可用。
当你现在想更改文本视图的样式时,你只需要通过隐藏第一个和显示第二个来交换两个文本视图
textView1.setVisibility(View.GONE);
textView2.setVisibility(View.VISIBLE);
我使用了这两个答案来实现它:
- https://stackoverflow.com/a/5488652/1639556
- https://stackoverflow.com/a/14195090/1639556
代码为:
ViewManager parent = (ViewManager) unknown.getParent();
parent.removeView(unknown);
TextView newUnknown = (TextView)getLayoutInflater().inflate(R.layout.tvtemplate, null);
newUnknown.setId(unknown.getId());
parent.addView(newUnknown, unknown.getLayoutParams());
unknown = newUnknown;
您可以尝试在文本视图上使用setTextAppearance()
。链接是:setTextAppearance
您的样式需要TextAppearance。某物作为父母的某件事。
使用R.style.YourStyleName
作为整数参数。