0

username「 」および「 」フィールドの編集テキストを検証しpasswordたいです。ユーザーにユーザー名とパスワードを空白のままにしてほしくありません。このサイトで、TextWatchern 追加addTextChangedListenerを使用してこれを処理できることがわかりました..しかし、強制終了エラーが発生しています..私はアンドロイドに非常に慣れていません。これは私の最初のアプリケーションです.どこが間違っているのか教えてください.私は次のコードを持っています:

public class MainActivity extends Activity implements android.text.TextWatcher {

 public String userString;
 public EditText edt_Username;
 public EditText edt_pwd;
 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // for validating username textbox

          edt_Username=(EditText) findViewById(R.id.username);
    edt_Username.addTextChangedListener(this);



    //for validating pwd textbox
     edt_pwd=(EditText) findViewById(R.id.pwd);
    edt_pwd.addTextChangedListener(this);

}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}   
public void login(View view)
{

            Intent intent=new Intent(this,Leave_form.class);
            setContentView(R.layout.activity_leave_form);
            startActivity(intent);

}

@Override
public void afterTextChanged(Editable s) 
{
    // TODO Auto-generated method stub

    if( edt_Username.getText().toString().equals(null)||edt_pwd.getText().toString().equals(null))
    {
    Toast.makeText(MainActivity.this, "All Fields Required.", 
             Toast.LENGTH_SHORT).show();
    }


}

前もって感謝します..

4

3 に答える 3

0

まず、ユーザーが自分の名前とパスワードを入力できるようにし、ボタンをクリックしたときにログイン用のボタンを配置して、ユーザー名とパスワードを検証します。

于 2013-03-19T10:26:21.290 に答える
0

テキストが null かどうかを確認する必要があります。

public void afterTextChanged(Editable s) 
{

   if( edt_Username.getText() == null || edt_Username.getText().toString().equals("") || edt_pwd.getText() == null || edt_pwd.getText().toString().equals(""))
   {
       Toast.makeText(MainActivity.this, "All Fields Required.", 
         Toast.LENGTH_SHORT).show();
   }


}
于 2013-03-19T10:21:44.463 に答える
0
Intent intent=new Intent(this,Leave_form.class); 
setContentView(R.layout.activity_leave_form);
startActivity(intent);

一度だけ呼び出すことができる login() メソッド setContentView() で呼び出しています! onCreate()メソッド内。

解決策は、この行を削除して、次のように新しく開始することActivityです

Intent intent = new Intent(this, Leave_form.class); 
startActivity(intent);

そして電話する

setContentView(R.layout.activity_leave_form);

onCreate() メソッドのLeave_form クラスで。

アップデート:

また、あなたのコードにはもっと多くのものが壊れています:

edt_Username.getText().toString().equals(null)

テキストボックスが空かどうかを判断したい場合は、次を使用してください。

if (TextUtils.isEmpty(edt_User.getText().toString()) && ...) {
   Toast.makeText(context, "Fields are required!", Toast.LENGTH_SHORT).show();
}

注: edt_Username.getText()は常に null ではありません。

于 2013-03-19T10:21:55.020 に答える