Android开发:在textChanged上计算EditText行?

时间:2011-01-24 22:04:03

标签: android count android-edittext lines

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

谢谢, 亚历!

2 个答案:

答案 0 :(得分:10)

行可以是不同的:

  • 可见行:已包装的文本计为新行...
  • 列表项:仅包含\ 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();
        }

答案 1 :(得分:0)

取决于您定义的“行号”。 您的edittext中的一行“GUI方式”,其中包含您的editview的换行符?或者描述它的“编码方式”中的一行(最后有\ n)? 即使不可能,第一个将很难获得。第二个:只计算文本中\ n的数量,如果在最后一个之后有东西,再加上另外一个\ n。