1

「ユーザー名」と「パスワード」の 2 つの編集フィールドがあり、これらのフィールドを含むこのページに戻るたびに、値が消去されません。次のコードを使用してみましたが、役に立ちませんでした:

            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("");

確認/送信ボタンが押され、ログインが成功した場合のみ。

onResume

最小化された状態からアプリケーションを再開した場合でも呼び出されます。

これは、ユーザー名、pwd を入力して VoiceCall が来ると、ユーザー エクスペリエンスが損なわれる可能性があります。通話に参加/拒否しましたが、それらすべてをもう一度入力する必要があることに驚いています???

于 2012-06-14T10:53:00.897 に答える
0

ログインアクティビティのメソッドでsetText(null)EditTextを呼び出す必要がありますonResume

于 2012-06-14T10:18:42.593 に答える