热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidtextview清除,如何删除TextView的旧行

我有同样的问题。我刚刚解决了。诀窍是使用TextView的getEditableText()方法。它有一个replace()方法,甚至是一个delete()方法。当你

我有同样的问题。 我刚刚解决了。

诀窍是使用TextView的getEditableText()方法。 它有一个replace()方法,甚至是一个delete()方法。 当你在其中追加getEditableText() ,TextView已经被标记为“editable”,这是使用getEditableText()所必需的。 我有这样的事情:

private final static int MAX_LINE = 50; private TextView _debugTextView; // Of course, must be filled with your TextView public void writeTerminal(String data) { _debugTextView.append(data); // Erase excessive lines int excessLineNumber = _debugTextView.getLineCount() - MAX_LINE; if (excessLineNumber > 0) { int eolIndex = -1; CharSequence charSequence = _debugTextView.getText(); for(int i=0; i

事情是, TextView.getLineCount()返回包装的行数,而不是文本中的“\ n”的数量…这就是为什么我清除整个文本,如果我到达文本的结尾,而寻求行删除。

您可以通过删除多个字符而不是删除多行来做到这一点。

此解决scheme跟踪列表中的日志行,并在每次更改时用该列表的内容覆盖textview。

private List errorLog = new ArrayList(); private static final int MAX_ERROR_LINES = 70; private TextView logTextView; public void addToLog(String str) { if (str.length() > 0) { errorLog.add( str) ; } // remove the first line if log is too large if (errorLog.size() >= MAX_ERROR_LINES) { errorLog.remove(0); } updateLog(); } private void updateLog() { String log = ""; for (String str : errorLog) { log += str + "\n"; } logTextView.setText(log); }

TextView显示通过setText()方法设置的内容。 所以这听起来像你应该减less你提供的input。

要清空TextView,你可以做setText("");

下面是一个例子,它将行添加到由设置的最大行限制的输出日志中。 每添加一行,滚动视图都会自动滚动到底部。 这个例子纯粹使用TextView的内容,所以它不需要单独的数据收集。

将以下内容添加到您的活动xml中:

在你的活动中添加下面的代码:

private static final int MAX_OUTPUT_LINES = 50; private static final boolean AUTO_SCROLL_BOTTOM = true; private TextView _textViewOutput; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); _textViewOutput = (TextView) findViewById(R.id.textViewOutput); } //call to add line(s) to TextView //This should work if either lineText contains multiple //linefeeds or none at all private void addLinesToTextView(String lineText) { _textViewOutput.append(lineText); removeLinesFromTextView(); if(AUTO_SCROLL_BOTTOM) _scrollView.post(new Runnable() { @Override public void run() { _scrollView.fullScroll(ScrollView.FOCUS_DOWN); } }); } // remove leading lines from beginning of the output view private void removeLinesFromTextView() { int linesToRemove = _textViewOutput.getLineCount() - MAX_OUTPUT_LINES; if (linesToRemove > 0) { for (int i = 0; i

我想你使用TextView.append(string)然后它会添加到旧文本。

如果您使用setText进行设置,则会replace旧文本

这是一个旧的,但我发现寻找解决我自己的问题。

我能够使用nameoflayout.removeAllViews();从LinearLayout删除所有的TextView nameoflayout.removeAllViews();

还有一种方法可以让你使用整数从布局的指定位置删除视图,它是: nameoflayout.removeViews(start, count); 所以我相信你可以创build一个超时的textviews保持可见多久。

不,android API不提供从textview中自动删除最早的行到API级别25的任何function。您需要在逻辑上做到这一点。

尝试编写一个函数,使TextView上的旧string,并添加新的string,然后得到子string的TextView能够最后的string。 并将其设置为TextView 。 像这样的东西:

String str &#61; textview.getText(); str &#43;&#61; newstring; int ln &#61; str.length(); ln &#61; ln-250; if (ln<0) ln&#61;0; str &#61; str.substring(ln); textview.setText(str);



推荐阅读
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 标题: ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有