【问题标题】:Underline selected listview items为选定的列表视图项目加下划线
【发布时间】:2015-11-19 09:16:07
【问题描述】:

列表视图中的列表项是否可以在选中时加下划线?我对列表项使用自定义布局(textview)

这就是我想要实现的目标:

 myList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            Cursor cursor = (Cursor) myList.getItemAtPosition
                    (position);
            String title = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_NAME));

            s.append(title);
           // Toast.makeText(getBaseContext(), s, Toast.LENGTH_LONG).show();

            TextView shopName = (TextView)findViewById(R.id.item_version);
            SpannableString content = new SpannableString(shopName.getText());
            content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
            shopName.setText(content);
        }
    });

【问题讨论】:

    标签: android listview


    【解决方案1】:

    如果您想在 TextView 中为文本添加下划线,可以使用 html 标签 &lt;u&gt; &lt;/u&gt; 来更改所选 textView 的文本,例如:

    String underlined = "<u>" + textView.getText() + "</u>";
    textView.setText(Html.fromHtml(underlined));
    

    或者“像老板一样”:D :

    SpannableString content = new SpannableString(textView.getText());
    content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
    textView.setText(content);
    

    或者其他方式:

    textview.setPaintFlags(textview.getPaintFlags()|Paint.UNDERLINE_TEXT_FLAG);
    

    在所有情况下,textView 都是您的TextView。我认为第二种方法可能比其他两种方法更好。

    希望这对你有帮助:)

    【讨论】:

    • 感谢您的回复:我会试试的
    • 下划线只在第一行有效,我希望它是多选的,请帮忙:)
    • 您是否对您的 listView 实现了多选?如果没有,您可以这样做,例如 stackoverflow.com/questions/1362602/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多