java - Android:在编辑文本中创建项目符号列表

标签 java android

我使用 EditText 作为主要的记事本输入区域,我希望用户能够简单地单击一个按钮并将他们的笔记变成项目符号列表(添加项目符号和每行文本前的几个空格)。

我已经找到了一些可行的方法,但我的主要问题是,如果用户有一个双换行符(注释中的一个空行),它会在空行中添加一个项目符号点。

我尝试将 MatcherPattern 与正则表达式一起使用,但无法弄清楚如何避免将项目符号点添加到已创建的一组空白行中文本。

这是将项目符号点添加到除注释标题之外的每一行的代码。

//Place text into an array containing the lines.
String[] lines = noteText.split("\n");

for (int i = 0; i < lines.length; i++) {
    //The note title. Don't add a bullet point
    if(i == 0) {
        pad.setText(lines[i]);
    } else {
        pad.append("\n" + "\u2022" + "  " + lines[i]);
    }
}

最佳答案

为什么不检查每一行,看看它是空的还是只有白色的文本?

String[] lines = noteText.split("\n");

for (int i = 0; i < lines.length; i++) {
 //The note title. Don't add a bullet point
 if(i == 0) {
    pad.setText(lines[i]);
 } else if (TextUtils.isEmpty(lines[i].trim()) {
    pad.setText(lines[i]);
 } else {
    pad.append("\n" + "\u2022" + "  " + lines[i]);
 }
}

此外,最好在循环外而不是在循环内处理 i=0 的情况。否则,您将在不必要的每次迭代中执行零检查。

关于java - Android:在编辑文本中创建项目符号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562333/

相关文章:

java - 无法在服务器端处理基于 cometd 的线程

java - 无法访问类型 foo 的封闭实例。为什么?

android - Visual Studio Android SDK 管理器 Android 8.1.0 API 27 错误 "Download finished with wrong size. Expected 65606517 bytes, got 65738431 bytes"

android - 如何解决导入冲突?

android - 用于从浏览器下载和安装 apk 的 Html 页面

java - 如何在android中获取0-255范围内图像的像素值

java - 为什么我的浏览器没有自动从 Java Servlet 打开 "Save As..."对话框?

android - Android API (2.3.3) 上的 WiMax/4G

android - Cordova/Phonegap 在新平板电脑上使用 Open Layers 时性能低下,但在新手机上性能良好

java - 如何计算某个项目在列表中出现的次数