반응형
<?php
$con = mysqli_connect("localhost","id","password","id");
$userID = $_POST["userID"];
$statement = mysqli_prepare($con, "DELETE FROM USER WHERE userID =?");
mysqli_stmt_bind_param($statement, "s", $userID);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode(&response);
?>
Delete.php 파일을 만들어줍니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="#ffffff"
tools:context=".ManagementActivity">
<LinearLayout
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="삭제"
android:background="#00a7f5"
android:textColor="#fff"
android:textSize="18dp"
android:id="@+id/deleteButton"
/>
</LinearLayout>
<LinearLayout
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userID"
android:text="아이디"
android:textSize="20dp"
android:textColor="#00a7f5"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userPassword"
android:text="비밀번호"
android:textSize="15dp"
android:textColor="#74dff5"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userName"
android:text="이름"
android:textSize="26dp"
android:textColor="#000"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/userAge"
android:text="나이"
android:textSize="18dp"
android:textColor="#7f5"
/>
</LinearLayout>
</LinearLayout>
user 레이아웃을 다시 설정에 삭제 버튼을 추가십키다. 아래는 위의 소스에대한 디자인입니다.
이후 DeleteRequest를 만들어줍니다.
package org.techtown.management;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class DeleteRequest extends StringRequest {
final static private String URL = "http://pssin1.cafe24.com/Delete.php";
private Map<String, String> parameters;
public DeleteRequest(String userID, Response.Listener<String> listener){
super(Request.Method.POST,URL,listener,null);
parameters = new HashMap<>();
parameters.put("userID",userID);
}
@Override
public Map<String, String>getParams(){
return parameters;
}
}
Delete Request 소스
package org.techtown.management;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class ManagementActivity extends AppCompatActivity {
//상속받아본다 만들어둔 클래스를
private ListView listView;
private UserListAdapter adapter;
private List<User> userList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_management);
Intent intent = getIntent();
//초기화를 해줘야지 실행이된다
listView = (ListView) findViewById(R.id.listView);
userList = new ArrayList<User>();
adapter = new UserListAdapter(getApplicationContext(),userList, this);
listView.setAdapter(adapter);
try{
JSONObject jsonObject = new JSONObject(intent.getStringExtra("userList"));
JSONArray jsonArray = jsonObject.getJSONArray("response");
int count =0;
String userID,userPassword,userName,userAge;
while(count<jsonArray.length())
{
JSONObject object = jsonArray.getJSONObject(count);
userID = object.getString("userID");
userPassword = object.getString("userPassword");
userName = object.getString("userName");
userAge = object.getString("userAge");
User user = new User(userID,userPassword,userName,userAge);
userList.add(user);
count++;
}
} catch (Exception e){
e.printStackTrace();
}
}
}
ManageMent Activity로 들어가서 자신의 엑티비티를 포함해서 UserListAdapter를 불러옵니다.
package org.techtown.management;
import android.app.Activity;
import android.content.Context;
import android.util.JsonReader;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;
import org.json.JSONObject;
import java.util.List;
public class UserListAdapter extends BaseAdapter {
private Context context;
private List<User> userList;
private Activity parentActivity;
//생성자 생성
public UserListAdapter(Context context, List<User> userList, Activity parentActivity){
this.context = context;
this.userList = userList;
this.parentActivity = parentActivity;
}
@Override
public int getCount() {
//현재사용자의 개수 반환
return userList.size();
}
@Override
public Object getItem(int position) {
return userList.get(position);
}
@Override
public long getItemId(int position) {
//그대로 반환
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//하나의 사용자에대한 view를 보여주는 부분
//한명의 사용자에대한 view가 만들어진다.
View v = View.inflate(context,R.layout.user,null);
final TextView userID = (TextView)v.findViewById(R.id.userID);
TextView userPassword = (TextView)v.findViewById(R.id.userPassword);
TextView userName = (TextView)v.findViewById(R.id.userName);
TextView userAge = (TextView)v.findViewById(R.id.userAge);
userID.setText(userList.get(position).getUserID());
userPassword.setText(userList.get(position).getUserPassword());
userName.setText(userList.get(position).getUserName());
userAge.setText(userList.get(position).getUserAge());
//특정 user에 아이디값을 그대로 반환할수 있게 해준다
v.setTag(userList.get(position).getUserID());
Button deleteButton = (Button) v.findViewById(R.id.deleteButton);
deleteButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view)
{
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){
userList.remove(position);
notifyDataSetChanged();
}
}catch (Exception e) {
e.printStackTrace();
}
}
};
DeleteRequest deleteRequest = new DeleteRequest(userID.getText().toString(),responseListener);
RequestQueue queue = Volley.newRequestQueue(parentActivity);
queue.add(deleteRequest);
}
});
return v;
}
}
UserListAdapter 소스
ManagementActivity에서 관리자는 삭제할수 없도록 합니다.
Register Acitivity로 들어가서 다음과같이 저부분을 없에주고
finish를 넣어줍니다.
이렇게 함으로써 회원가입을 성공하면 회원가입 엑티비티가 종료됩니다.
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();
finish();
}
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);
}
});
}
}
register Activity 소스
실행화면
반응형
'개인공부' 카테고리의 다른 글
안드로이드 : 레이아웃 함수 알아보기 (0) | 2020.07.09 |
---|---|
안드로이드 : 회원 관리 프로젝트(회원 검색 기능) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(리스트 뷰) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(회원 출력,버튼 hide) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(로그인 및 메인 화면) (0) | 2020.07.08 |