【问题标题】:Applying highlighting text to multiple text lines将突出显示文本应用于多个文本行
【发布时间】:2017-06-14 06:52:10
【问题描述】:

我想问你,当在应用程序的不同位置按下时,我必须创建什么全局代码来突出显示文本。还是我必须在每个要突出显示的文本正文中的 onClick 方法中添加颜色线?

感谢您的建议。

要更具体地回答我的问题,请看一下这段代码:

public class MainActivity extends AppCompatActivity {
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView text = (TextView) findViewById(R.id.textView2);
        text.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                text.setTextColor(Color.GREEN);
            }
        });
    }
}

我在每个页面/屏幕上都有 54 个答案,每组 3 个答案,并且必须对每个答案使用相同的方法 - 按下时会被高亮显示。我想知道我怎样才能正确地做到这一点。如果我添加到 findViewById(R.id.textView2); textView2 之后的另一个文本 ID 这不起作用。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请查看我们的SO Question Checklist 以帮助您提出一个好问题,从而得到一个好的答案。
  • 您的问题需要更加具体。您正在使用哪些组件?您是否希望在所有组件中突出显示所有文本?到目前为止,您尝试过什么?

标签: java text highlight


【解决方案1】:

您需要为此使用 textSelector。

选择器的编写方法请参考下面的链接-

Android customized button; changing text color

在您的情况下,如果您希望文本颜色在选择后变为绿色,您的选择器应该是这样的 -

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:color="defalutColor" />
    <item android:state_selected="true" android:color="greenColor" />
</selector>

你的 textView 将有 textColor="@drawable/textSelector"

在代码中你需要为 textView 编写 OnClickListener,在 OnClick 中你只需要指出 textView.setSelected(true) 这将使 textColor 变为绿色。

【讨论】:

  • 非常感谢大家!我会尽量按照你的方式去做。
猜你喜欢
  • 2020-01-15
  • 2012-10-27
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 2014-08-15
  • 2012-07-27
相关资源
最近更新 更多