Android 开发:计算 textChanged 上的 EditText 行数?

发布于 2024-10-14 01:28:32 字数 120 浏览 2 评论 0原文

如何计算 EditText 中的行数? 基本上在我的应用程序中,我有行号,我想让它们在 textchange 上更新(我已经设置了 textchangelistener)。 这可能吗? :(

谢谢, 亚历克斯!

How can I count the number of lines in an EditText?
Basically in my app I have line numbers and I wanted to make them update on textchange (I already have the textchangelistener set up).
Is this possible? :(

Thanks,
Alex!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹏雨一样淡蓝的深情 2024-10-21 01:28:32

行可以不同:

  • 可见行:换行文本算作新行...
  • 列表项:仅包含 \r、\n、\r\n 的行

第一种情况(最简单):

int nbLines = editText.getLineCount();

第二种情况:

        int nbLines = 0;
        StringReader     sr = new StringReader(editText.getText().toString());
        LineNumberReader lnr = new LineNumberReader(sr);
        try { 
            while (lnr.readLine() != null){}
            nbLines = lnr.getLineNumber();
            lnr.close();
        } catch (IOException e) {
            nbLines = editText.getLineCount();
        } finally {
            sr.close();
        }

Lines can be differents:

  • Visible lines: Wrapped text count as a new line...
  • List item: Only lines with \r, \n, \r\n

First case (the easiest):

int nbLines = editText.getLineCount();

Second case:

        int nbLines = 0;
        StringReader     sr = new StringReader(editText.getText().toString());
        LineNumberReader lnr = new LineNumberReader(sr);
        try { 
            while (lnr.readLine() != null){}
            nbLines = lnr.getLineNumber();
            lnr.close();
        } catch (IOException e) {
            nbLines = editText.getLineCount();
        } finally {
            sr.close();
        }
友谊不毕业 2024-10-21 01:28:32

取决于您定义的“行号”。
“GUI 方式”中的编辑文本中的一行,其中包括编辑视图所做的换行符?或者以“编码方式”描述它的一行(末尾有 \n )?
第一个将很难获得,甚至不可能获得。第二个:只统计文本中\n的个数,如果最后一个\n后面有东西就再加1。

Depends on what you define as "line number".
A line in your edittext in "GUI way", which includes the linebreaks your editview does? Or a line in a "coding way" of describing it (having \n at the end)?
First one will be quite hard to get, if even impossible. Second one: just count the numbers of \n in the text, plus add another 1 if there is something after the last \n.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文