0

2 つの EditText (ユーザー名、パスワード) とボタンで表されるログイン アプリを作成しました。ログインをクリックすると、もちろん情報がチェックされ、間違っている場合は再試行ボタンのあるダイアログが表示されます。ログイン アクティビティに戻ると、古いユーザー名とパスワードのテキストがまだ残っているので、リセットしたいと思います。エラーダイアログがポップアップすると onPause() メソッドが生成されるため、 onPause() メソッドでそれを実行しようとしましたが、失敗しました。

何か案が?ありがとう。

編集: あなたのアドバイスの後、コードを再配置し、EditText を宣言することにしました。結果は同じです =\

public class MainActivity extends Activity 
{
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    private EditText username,password;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.username = (EditText)findViewById(R.id.username);
    this.password = (EditText)findViewById(R.id.password);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
@Override
public void onPause()
{
    this.username.setText("");
    this.password.setText("");

    super.onPause();
}
public void showMsg(View view)
{
    String user = this.username.getText().toString();
    String pass = this.password.getText().toString();

    if(user.equals("a") && pass.equals("a"))
    {
        Intent i1 = new Intent(this,DisplayMessageActivity.class);
        i1.putExtra(EXTRA_MESSAGE, user);
        startActivity(i1);
    }
    else
    {   
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Error!");
        builder.setMessage(R.string.failure);
        builder.setPositiveButton("Try again", null);
        builder.show();
    }
}

}

4

2 に答える 2

1

エラーダイアログがポップアップするとonPause()メソッドが生成されるので、onPause()メソッドでこれを実行しようとしましたが、失敗しました。

それが何を意味するのかわかりませんが、次のようなことができるはずです。

@Override
protected void onPause() {
    editText.setText("");
    super.onPause();
}

これで問題が解決しない場合は、試したこととLogCatエラーを投稿する必要があります。そうでなければ、私たちは助けることができません...


追加
ユーザー名とパスワードの組み合わせが間違っている場合、実際にはアクティビティを離れないため、onPause()呼び出されることはありません。これを試して:

public void showMsg(View view)
{
    String user = this.username.getText().toString();
    String pass = this.password.getText().toString();
    this.username.setText("");
    this.password.setText("");

または、elseブロック(AlertDialogを作成する場所)のユーザー名とパスワードのみをクリアする場合。

于 2012-11-19T19:30:52.410 に答える
0

ボタンをクリックすると、空の EditText を設定できます。

editText.setText("");

または、xml でヒント属性を設定してみてください。

android:hint="Enter Name"
于 2012-11-19T19:31:40.633 に答える