如何在恢复到同一活动时删除EditText字段?

时间:2012-06-14 10:16:39

标签: android android-edittext

我有两个编辑字段“用户名”和“密码”,每次我回复到包含这些字段的页面时,值都不会被删除。我尝试使用以下代码,但没有帮助:

            username = (EditText) findViewById(R.id.enterUsername);
            password = (EditText) findViewById(R.id.enterPassword);
          username.setOnClickListener(new View.OnClickListener() 
    {
           @Override
           public void onClick(View v) 
           {
               username.setText("");
           }

 });

    password.setOnClickListener(new View.OnClickListener() 
    {
           @Override
           public void onClick(View v) 
           {
               password.setText("");
           }

 });

在返回同一活动时,为了删除EditText字段的先前条目可以做些什么?

4 个答案:

答案 0 :(得分:5)

在Activity onResume()中,您可以清除EditText数据。

protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        password.setText("");
        username.setText("");

    }

由于

答案 1 :(得分:2)

为什么要设置setOnClickListener?只有用户点击这些字段才有用。

而是在onCreate()中编写以下代码。
因此,当您返回活动时,将重新创建该活动,因此将调用onCreate()

username.setText("");
password.setText("");

注意:
在使用之前,请确保已通过写入来初始化它们:

        username = (EditText) findViewById(R.id.enterUsername);
        password = (EditText) findViewById(R.id.enterPassword);

答案 2 :(得分:1)

我认为你应该

password.setText("");
username.setText("");

仅在按下某些确认/提交按钮并且登录成功时才会显示。

  

的onResume

即使你从最小化状态恢复你的应用程序,也会调用

当我输入我的用户名,密码和VoiceCall时,这将是对用户体验的打破。我参加/拒绝电话,我很惊讶我必须再次输入所有这些东西???

答案 3 :(得分:0)

您需要在登录活动的setText(null)方法中将onResume调用到您的EditText