본문 바로가기

개인공부

안드로이드 : 회원 관리 프로젝트(회원가입)

반응형

 

 

java파일에 새로운 class파일을 생성합니다

 

 

package org.techtown.management;

import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;

import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class RegisterRequest extends StringRequest {

    final static private  String URL = "http://pssin1.cafe24.com/Register.php";
    private Map<String, String> parameters;

    public  RegisterRequest(String userID,String userPassword, String userName, int userAge, Response.Listener<String> listener){
        super(Method.POST, URL, listener, null);
        parameters = new HashMap<>();
        parameters.put("userID",userID);
        parameters.put("userPassword", userPassword);
        parameters.put("userName",userName);
        parameters.put("userAge",userAge +"");
    }
    @Override
    public Map<String, String > getParams(){
        return parameters;
    }

}

egisterRRequest라는 클래스를 정의했다.

 

final static private  String URL = "http://pssin1.cafe24.com/Register.php";

 

"" 안에는 자신의 php 파일을 붙여 넣어줍니다 (Register.php)

SQL문으로 DB에 등록하는 작업을 합니다.

 

 

    public  RegisterRequest(String userID,String userPassword, String userName, int userAge, Response.Listener<String> listener){
        super(Method.POST, URL, listener, null);
        parameters = new HashMap<>();
        parameters.put("userID",userID);
        parameters.put("userPassword", userPassword);
        parameters.put("userName",userName);
        parameters.put("userAge",userAge +"");
    }

 

생성자를 만들어줍니다. DB정보에 해당하는 생성자입니다.

super를 통해 전송방식을 선택해줍니다 (POST방식)

userID 에 userID를 맵핑해줍니다 왼쪽이 DB값

+"" 인트형이기때문에 문자형으로 바꾸는 것

 

    public Map<String, String > getParams(){
        return parameters;
    }

 

현재 가지고 있는 값을 반환해줍니다.

 

 

 

 

manifests파일에 들어가서 인터넷 접속을 허용하는 환경설정을 해줍니다.

 

기존에있던 RegisterActivity파일을 수정해줍니다.

 

 

package org.techtown.management;

import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

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

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

public class RegisterActivity extends AppCompatActivity {

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

        final EditText idText = (EditText) findViewById(R.id.idText);
        final EditText passwordText = (EditText) findViewById(R.id.passwordText);
        final EditText nameText = (EditText) findViewById(R.id.nameText);
        final EditText ageText = (EditText) findViewById(R.id.ageText);

        Button registerButton = (Button) findViewById(R.id.registerButton);

        registerButton.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){
                String userID = idText.getText().toString();
                String userPassword = passwordText.getText().toString();
                String userName = nameText.getText().toString();
                int userAge = Integer.parseInt(ageText.getText().toString());

                Response.Listener<String> respnseListener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try
                        {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");
                            if(success){
                                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                                builder.setMessage("회원 등록에 성공했습니다.")
                                        .setPositiveButton("확인",null)
                                        .create()
                                        .show();
                                Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
                                RegisterActivity.this.startActivity(intent);
                            }
                            else
                            {
                                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                                builder.setMessage("회원 등록에 실패했습니다.")
                                        .setNegativeButton("다시 시도",null)
                                        .create()
                                        .show();
                            }
                        }

                        catch (JSONException e)
                        {
                            e.printStackTrace();
                        }
                    }
                };
                RegisterRequest registerRequest = new RegisterRequest(userID,userPassword,userName,userAge,respnseListener);
                RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
                queue.add(registerRequest);
            }
        });
    }
}

 

resisterActivity 변경후

 

간단하게 소스를 알아보도록 하자

 

registerButton.setOnClickListener(new View.OnClickListener(){

클릭 했을때 행동

 

                String userID = idText.getText().toString();
                String userPassword = passwordText.getText().toString();
                String userName = nameText.getText().toString();
                int userAge = Integer.parseInt(ageText.getText().toString());

텍스트에서 값 가져와서 저장

 

 Response.Listener<String> respnseListener = new Response.Listener<String>() {
                    @Override

리스너에서 원하는 결과값을 다룰수 있게해준다.

 

                        try 
                        { 

       
                        } 

                        catch (JSONException e) 
                        { 
                            e.printStackTrace(); 
                        }

try catch를 활용해서 오류를 잡아줄수 있게 해주자.

 

 JSONObject jsonResponse = new JSONObject(response);
 boolean success = jsonResponse.getBoolean("success");

 

DB에서 회원가입이 정상적으로 됫는지 실패했는지 받는값

불린값으로 바꿈 success일경우 true

 

RegisterRequest registerRequest = new RegisterRequest(userID,userPassword,userName,userAge,respnseListener);
RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
queue.add(registerRequest);

 

해당변수를 넣어줘서 함수를 실행하고

RequestQueue를 통해서 인터넷으로 접속하는 방식이용

마지막으로 queue에 넣어서 resister request를 실행한다.

 

실행화면

 

 

등록됬습니다

 

반응형