【问题标题】:How to clear Edittext effectively in Android如何在 Android 中有效清除 Edittext
【发布时间】:2020-03-14 13:20:52
【问题描述】:

我开发了一个应用程序,我一次又一次地使用相同的 textview,所以我需要非常频繁地清除 textview。

由于它与 UI 有关,我必须在 UI 线程上执行此任务,但仅清除 textview 需要 5-6 毫秒,我猜这似乎非常巨大。谁能帮我减少这段时间,这样我就可以非常顺利地管理我的 UI 任务而不会跳过任何帧?

我附上我的代码 sn-p 作为参考,我尝试了两种方法,但最短时间是 5 毫秒。

公共类 MainActivity 扩展 AppCompatActivity { 编辑文本编辑文本; 按钮 btnClearText; @覆盖 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.editText); btnClearText = findViewById(R.id.btnClearText); btnClearText.setOnClickListener(new View.OnClickListener() { @覆盖 公共无效 onClick(查看 v){ // 使用空文本进行测试 editText.setText(""); // 尝试使用 setText(''); Log.e("clearText", "setText(''): start "+ new Date().getTime()); editText.setText(""); Log.e("clearText", "setText(''): end" + new Date().getTime()); // 相差 15 毫秒 // 尝试使用 getText().clear(); Log.e("clearText", "getText().clear(): 开始" + new Date().getTime()); editText.getText().clear(); Log.e("clearText", "getText().clear(): end" + new Date().getTime()); // 5毫秒的差异 } }); } }

有任何提高性能的建议或替代方法吗?

谢谢,

【问题讨论】:

  • 为什么你使用相同的textview/edittext?
  • 您可以尝试 到 strings.xml 并使用 textView.setText(R.string.empty)。还有 textview.settext(null)
  • 我开发了一个聊天应用程序,在其中我使用相同的编辑文本来发送消息,一旦我们按下发送按钮,我需要清除编辑文本以输入新消息。
  • @MajidAli 我已经尝试过了,但需要更多时间才能检查我的代码 sn-p。

标签: android


【解决方案1】:

使用数据绑定

清除编辑文本的最佳有效方法之一

通过使用数据绑定,edittext有效观察值并清除文本 .

您还可以使用 MVVM 架构来获得更好的性能提升。

或者只是使用

et.setText("");

或者

et_city.getText().clear();

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 2011-08-10
    • 2014-05-28
    • 2014-06-21
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多