我正在 android studio 中开发一个计算器应用程序,我希望计算器将答案附加到现有方程式,更像是一个图形计算器,它会显示方程式,然后在其下方显示答案。我当前的解决方案仅适用于第一个方程。我试过了
int start = display.getLayout().getLineStart(display.getLineCount());
int end = display.getLayout().getLineEnd(display.getLineCount());
然后
double result = calc(display.getText().toString().substring(start,end));
结果是我从 getLineEnd 得到了一个 IndexOutOfBoundsException,我不知道该怎么做?
最佳答案
打勾的答案是错误的。我有多行 TextView,但文本没有“\n”或“\r”字符。它是多行的,因为宽度不足以容纳整个文本。您的问题是您发送 getLineCount() 作为参数,您必须为最后一行发送 getLineCount() -1。我计算最后一行的宽度如下:
float lastLineWidth = textViewMessage.getLayout().getLineRight(textViewMessage.getLineCount() - 1) - textViewMessage.getLayout().getLineLeft(textViewMessage.getLineCount() - 1);
但是我在使用它时遇到了一个问题。我无法在 ListView.getView() 方法中调用 textView.getLayout() 方法。它总是返回空值。我只能在 TextView.Post() 方法中调用它,但我不想在 Post() 方法中调用它,因为我对 LayoutParams 做了一些添加和删除规则,这会导致 ListView 出现滚动问题。
有没有办法在不调用 TextView 的 getLayout() 方法的情况下获取最后一行字符串或最后一行宽度。
关于android - 获取Android开发TextView最后一行的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763679/