android - 获取Android开发TextView最后一行的文字

标签 android textview

我正在 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/

相关文章:

java - Kotlin for android 和 static final 内部类

android - 当我知道它正在椭圆化时,StaticLayout getEllipsisCount 返回 0?

android 可滚动 TextView 在 ScrollView 中不起作用

android - 在android中缩放具有图像和文本(Html内容)的textview

android - 使用 ACTION_SEND 或 ACTION_SEND_MULTIPLE 发送图像和文本

android - C++ 生成器 : Include JAR files

android - 如何将自定义布局添加到微调项

java - 如何在 gradle 3 或更高版本中使用 jar 文件?

android - 当我从 textview 插入值时,为什么我的字符串不能按我想要的方式排序?

Android:循环更改textview