2016-06-24 2 views
0

등록 페이지를 만들었고 사용자 이름이 비어 있는지 여부를 확인하고 오류 진술을 제공하지만 작동하지 않는지 확인하는 코드를 구현했습니다. 그 일을하지 않는 오류 메시지가 없습니다. 나는 등록 단추를 클릭 할 수 있고 거기에 정보가 없으면 여전히 데이터베이스에 들어갑니다. 이것은 작동하지 않는 코드입니다.안드로이드 스튜디오가 비어있는 경우

if (TextUtils.isEmpty(username)) { 
    Log.d(TAG, "Username is empty. Please fill it in ."); 
} else { 
} 

RegisterActivity : 프로그램의

import android.app.AlertDialog; 
    import android.content.Intent; 
    import android.nfc.Tag; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.text.TextUtils; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.Toast; 

    import com.android.volley.RequestQueue; 
    import com.android.volley.Response; 
    import com.android.volley.toolbox.Volley; 

    import org.json.JSONException; 
    import org.json.JSONObject; 

public class RegisterActivity extends AppCompatActivity { 

private static final String TAG = "LoginActivity"; 

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

    final EditText etUsername = (EditText) findViewById(R.id.etUsername); 
    final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
    final Button bRegister = (Button) findViewById(R.id.bRegister); 

    bRegister.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final String username = etUsername.getText().toString(); 
      final String password = etPassword.getText().toString(); 

      if (TextUtils.isEmpty(username)) { 
       Log.d(TAG, "Username is empty. Please fill it in ."); 
      } else { 

      } 

      Response.Listener<String> responseListener = new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         JSONObject jsonResponse = new JSONObject(response); 
         boolean success = jsonResponse.getBoolean("success"); 
         if (success) { 
          Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
          RegisterActivity.this.startActivity(intent); 
         } else { 
          AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
          builder.setMessage("User details already in use") 
            .setNegativeButton("Retry", null) 
            .create() 
            .show(); 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 

       } 
      }; 
      RegisterRequest registerRequest = new RegisterRequest(username, password, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
      queue.add(registerRequest); 
     } 
    }); 
} 
} 
+0

'else'문 안에 텍스트가 있으면 if (username.equals (""))'를 실행하고 실제로 실행하고 싶은 코드를 입력해야합니다. –

답변

0

다른 부분은 빈 줄 이상으로 확장해야합니다. 조작이 끝날 때까지 else 블록을 확장하십시오.

+0

또는 Log 문 바로 뒤에'return;'을 추가하는 것이 더 좋다 –

0

는 다른 블록에 가야이 코드

public void onClick(View v) { 
     final String username = etUsername.getText().toString(); 
     final String password = etPassword.getText().toString(); 

     if (etUsername.getText().toString().trim().isEmpty()) { 
      Log.d(TAG, "Username is empty. Please fill it in ."); 
     } else { 


    Response.Listener<String> responseListener = new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       JSONObject jsonResponse = new JSONObject(response); 
       boolean success = jsonResponse.getBoolean("success"); 
       if (success) { 
        Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
        RegisterActivity.this.startActivity(intent); 
       } else { 
        AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
        builder.setMessage("User details already in use") 
          .setNegativeButton("Retry", null) 
          .create() 
          .show(); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } 
    }; 
    RegisterRequest registerRequest = new RegisterRequest(username, password, responseListener); 
    RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
    queue.add(registerRequest); 


     } 

에게 코드의 나머지 부분을보십시오.

+0

이 코드를 입력하고 내 등록 버튼을 클릭하면 작동하지 않는다 –

0

잘못된 :

if (TextUtils.isEmpty(username)) { 
      Log.d(TAG, "Username is empty. Please fill it in ."); 
     } else { 

     } 

     Response.Listener<String> responseListener = new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonResponse = new JSONObject(response); 
        boolean success = jsonResponse.getBoolean("success"); 
        if (success) { 
         Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
         RegisterActivity.this.startActivity(intent); 
        } else { 
         AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
         builder.setMessage("User details already in use") 
           .setNegativeButton("Retry", null) 
           .create() 
           .show(); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 
     RegisterRequest registerRequest = new RegisterRequest(username, password, responseListener); 
     RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
     queue.add(registerRequest); 

올바른 :

if (TextUtils.isEmpty(username)) 
{ 
      Log.d(TAG, "Username is empty. Please fill it in ."); 
} 
else 
{ 
     Response.Listener<String> responseListener = new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonResponse = new JSONObject(response); 
        boolean success = jsonResponse.getBoolean("success"); 
        if (success) { 
         Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
         RegisterActivity.this.startActivity(intent); 
        } else { 
         AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
         builder.setMessage("User details already in use") 
           .setNegativeButton("Retry", null) 
           .create() 
           .show(); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 
     RegisterRequest registerRequest = new RegisterRequest(username, password, responseListener); 
     RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
     queue.add(registerRequest); 
} 
+0

이 코드를 입력하고 내 등록 버튼을 클릭하면 작동하지 않는다 –

0

다음
public boolean checkIfEmpty(EditText edt) { 
    String str = edt.getText().toString().trim(); 
    return TextUtils.isEmpty(str) || str.length() == 0; 
} 

확인하기 위해 어떻게하면 직접 확인하도록 글고 치기를 사용할 수 있습니다

if (checkIfEmpty(editText)){ 
    editText.setError("Your error message"); 
    return; 
} 
+0

이것을 시도 할 때 오류가 발생합니다. –

+0

android.text.TextUtils; –

+0

if (checkIfEmpty (editText))의 다섯 가지 부분에서 오류가 발생했습니다. { editText.setError ("오류 메시지"); 반환; } –

1

로그가 예외와 같지 않습니다. NOT 귀하의 방법을 종결시킬 것입니다. 로그는 그냥 녹음 메시지입니다. 이 경우 username이 비어 있지만 수행 할 작업을 지정하지 않으면 문제가 기록되므로 프로그램이 계속 실행됩니다.

두 가지 방법으로 해결할 수 있습니다.

방법 1

username을 확인하는 빈 후 당신이 원하는 아무 것도 없습니다. 그런 다음,

if(TextUtils.isEmpty(username)){ 
    Log.d(TAG, "Username is empty. Please fill it in ."); 
    return; 
} 

방법 2

username가 비어 확인 후 처리 할 일이 있습니다. 그런 다음

+0

이 오류가 발생하지 않습니다 –

+0

@bbt 오류가 무엇입니까? – Joshua

+0

등록이 성공한 후에 마지막 중괄호를 넣으려고합니다. –

관련 문제