【问题标题】:Strike the string in android在android中敲击字符串
【发布时间】:2015-05-07 14:25:53
【问题描述】:

我的要求:

我想在我的文本视图中敲击特定的字符串。

请看下面的图片。在project 2 box中,task 8、task 5、task 1、task 3被击中。

我的尝试:

参考这个SO question后,

我可以点击整个文本视图。 (但我不能明智地打击特定的字符串)

 TextView tv = (TextView) findViewById(R.id.mytext);
 tv.setText("This is strike-thru");
 tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

我的问题:

1.我只想敲击特定的琴弦。

2.不是整个文本框。

【问题讨论】:

  • 您可以为此保留多个 TextViews..一个用于保留删除线文本,另一个用于普通文本..
  • 文本是动态生成的吗?
  • @Lal 好主意..但是我从 webservice 获得这些字符串..所以我不能这样做。
  • 你可以使用StrikethroughSpan
  • 好的@ranjith..检查我的答案..

标签: java android


【解决方案1】:

this link,你可以在那里看到所有的文字样式。
你需要使用 spannableString 。只需选择样式并指定字符串的开始和结束索引即可获得样式。

    SpannableString string = new SpannableString("your text here");

    string.setSpan(new StrikethroughSpan(), 0, string.length(), 0); 

    textView.setText(string);

【讨论】:

    【解决方案2】:

    试试这个以以编程方式

    添加划线文本
    tv.setText(Html.fromHtml("This is <del>strike-thru</del>."));
    

    如果你想通过你的xml文件添加它,你可以这样做

    <string name="line"> This is <strike> strike-thru</strike> </string>
    

    然后在您的 Textview 中添加:

    <TextView 
            ...
             android:text="@string/line"
     />
    

    更新

    如果&lt;del&gt; 不起作用,请尝试使用&lt;strike&gt; 之类的,

    tv.setText(Html.fromHtml("This is <strike>strike-thru</strike>."));
    

    【讨论】:

    • 我可以在运行时创建这个字符串吗?
    • 是的,当然..你可以像使用普通的setText()一样使用它。
    • 不工作..我尝试 Html.fromHtml().. 但字符串没有被击中..我不能使用第二个解决方案..因为我得到了字符串运行时。
    • , 不适用于 android textview 我也在寻找解决方案,请帮助我。我有一个当前价格和实际价格的 textview 请帮助我
    • 标签 不适用于棒棒糖前的 Android
    猜你喜欢
    • 2014-07-01
    • 2014-12-11
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多