【问题标题】:TextView with different colors不同颜色的TextView
【发布时间】:2014-03-25 00:27:11
【问题描述】:

我的代码有问题。我正在尝试制作一个应用程序来检查用户是否以正确的方式编写句子。如果他没有,他会看到他写错的单词是红色的,否则他会看到整个句子是绿色的。

check_b.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        final String[] dan_res = dan.split(" ");
        String[] text_res = check_text.getText().toString().split(" ");

        for (int i = 0; i<text_res.length; i++) {
            if (text_res[i] != dan_res[i]) {
                SpannableString text = new SpannableString(text_res[i]);  
                // make "Lorem" (characters 0 to 5) red  
                text.setSpan(new ForegroundColorSpan(Color.RED), 0, i, 0);
                dan_view.append(text_res[i]);
            }
            else {
                dan_view.setTextColor(Color.GREEN);
            }
        }
    }
});

【问题讨论】:

  • 你说你的代码有问题。你看到了什么,你想要完成什么?
  • 当我看到一个问题说“有问题”而没有解释问题是什么时,我会投票关闭,因为“缺乏足够的信息来诊断问题”或“不清楚你是什么” 9 次问”9 次。“有一个问题”并没有给任何人一个检查问题的起点。解释你想要完成什么,你得到什么结果,以及它们与预期结果有何不同。包括您收到的任何错误消息。

标签: android textview


【解决方案1】:

也许最简单的方法是使用 HTML:

textview.setText(Html.fromHtml("<font color='red'>This is red.</font><font color='green'>And this is green.</font>"));

【讨论】:

    【解决方案2】:

    我认为您必须将 InputFilter 应用于您的 EditText 并在过滤器方法中更改颜色

        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                Spanned dest, int dstart, int dend) {
                      if (dest ... goodstring) // set color of EditText green
                      else // set color of EditText red
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2021-09-09
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多