1

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

            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

4 回答 4

5

在您的 Activity onResume() 中,您这样做是为了清除 EditText 数据。

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

    }

谢谢

于 2012-06-14T10:23:08.073 回答
2

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

而是在您的onCreate().
因此,当您返回活动时,该活动将被重新创建,因此onCreate()将被调用。

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

注意:
确保您在使用之前已通过编写以下方式初始化它们:

        username = (EditText) findViewById(R.id.enterUsername);
        password = (EditText) findViewById(R.id.enterPassword);
于 2012-06-14T10:20:49.033 回答
1

我想你应该

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

仅当按下某个确认/提交按钮并且登录成功时。

恢复

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

当假设我输入我的用户名、密码并且 VoiceCall 来时,这将破坏用户体验。我参加/拒绝电话,我很惊讶我必须再次输入所有这些东西???

于 2012-06-14T10:53:00.897 回答
0

您需要在登录活动setText(null)的方法中调用您的 EditTextonResume

于 2012-06-14T10:18:42.593 回答