当前位置: 首页 > 知识库问答 >
问题:

如何在Android中有效清除编辑文本

封烈
2023-03-14

我开发了一个应用程序,我在其中反复使用同一个textview,所以我需要经常清除textview。

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

我正在附上我的代码段以供参考,在这里我尝试了两种方法,但最短的时间是5毫秒。


    public class MainActivity extends AppCompatActivity {
    EditText editText;
    Button btnClearText;
    @Override
    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() {
            @Override
            public void onClick(View v) {
                // test with empty text
                editText.setText("");

                // try with setText('');
                Log.e("clearText", "setText(''): start "+ new Date().getTime());
                editText.setText("");
                Log.e("clearText", "setText(''): end" + new Date().getTime()); // difference of 15 millisecond

               // try with getText().clear();
                Log.e("clearText", "getText().clear(): start" + new Date().getTime());
                editText.getText().clear();
                Log.e("clearText", "getText().clear(): end" + new Date().getTime()); // difference of 5 millisecond
            }
        });
    }
}



有什么改进绩效的建议或替代方法吗?

谢谢,

共有1个答案

秦宏硕
2023-03-14

清除编辑文本的最佳有效方法之一是使用数据绑定

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

您还可以使用MVVM架构进行更好的性能改进。

或者只使用

et.settext(“”);

et_city.gettext().clear();

 类似资料: