【问题标题】:How to bold specific word in listview android如何在listview android中加粗特定单词
【发布时间】:2020-07-07 05:23:07
【问题描述】:

我正在尝试将列表视图中包含“:”的特定文本加粗。我想将下图中包含“:”的下划线单词加粗,但我无法获取所有消息。请在下面查看我当前的代码。 感谢您的任何回复。

ArrayList<String> list_items = new ArrayList<String>();
public  void listview_refresh(){
    arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list_items);

    ContentResolver cResolver = getContentResolver();
    Cursor smsInboxCursor = cResolver.query(Uri.parse("content://sms/inbox"),null,null,null,"date desc");
    int indexBody = smsInboxCursor.getColumnIndex("body");
    if (indexBody < 0 || !smsInboxCursor.moveToFirst()) return;
    do{
        str = smsInboxCursor.getString(indexBody) ;
        arrayAdapter.add(str);

        String[] separated = str.split(":");
        String separate = separated[1];

        arrayAdapter.replaceAll(separate, "<b>" + separate + "</b>"); //errorline

    }while (smsInboxCursor.moveToNext());
}

【问题讨论】:

  • 在这里检查您是否有答案。
  • 我已经检查过了,但是 myTextview 是从哪里来的?自定义列表视图? myTextView.setText(Html.fromHtml(sentence)); @KalanaChinthaka
  • @DagzRV 您正在使用此适配器在某处设置文本代码在哪里?在那个 textView 上,你应该调用 yourTextView.setText(Html.formatHtml(yourStringfromAdapterHere));
  • i.stack.imgur.com/sgiok.jpg 感谢您的回复,此 textview 已连接到我的 lisview,但我的 textview.xml 在单独的 xml 上,也没有使用 textview 来加粗我使用 listview @KalanaChinthaka 的文本

标签: android listview text styles


【解决方案1】:

在适配器列表中添加字符串作为 Html。我已经修改了您的代码并添加了Html.fromHtml(..) 以使文本在其中使用 HTML 代码。

ArrayList<String> list_items = new ArrayList<String>();
public  void listview_refresh(){
arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list_items);

ContentResolver cResolver = getContentResolver();
Cursor smsInboxCursor = cResolver.query(Uri.parse("content://sms/inbox"),null,null,null,"date desc");
int indexBody = smsInboxCursor.getColumnIndex("body");
if (indexBody < 0 || !smsInboxCursor.moveToFirst()) return;
do{
    str = smsInboxCursor.getString(indexBody) ;
    
    String[] separated = str.split(":");
    String separate = separated[1];

    str = str.replaceAll(separate, "<b>" + separate + "</b>"); //errorline
    arrayAdapter.add(Html.fromHtml(str));
}while (smsInboxCursor.moveToNext());
}

【讨论】:

  • 这个词还是不加粗,请帮助@Ashish Karn
  • 我在添加到适配器时添加了 Html.fromHtml(..) 请再次检查。
  • 非常感谢我现在明白了! @Ashish Karn
  • i.stack.imgur.com/iiCrn.png 这看起来像现在@Ashish Karn,但我还有一个问题,我观察到那些粗体和下划线字符串与其他列表没有正确对齐
  • 这是什么问题?
猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 2020-07-29
  • 2022-01-20
  • 2017-06-12
  • 2012-02-21
  • 1970-01-01
相关资源
最近更新 更多