반응형
managementButton하나를 만들어줍니다.
text이름은 회원관리 라고 해줍니다.
MainActivity로 돌아가서 방금 만든 버튼을 매칭해줍니다.
사용자 아이디가 admin과 같지 않다면 버튼을 비활성화 해줍니다.
버튼을 안보이게 해주는 함수.
<?php
$con = mysqli_connect("localhost","ndb796android","android456","ndb796android");
$result = mysqli_query($con, "SELECT * FROM USER;");
$response = array();
while($row = mysqli_fetch_array($result)){
array_push($response, array("userID"=>$row[0], "userPassword"=>$row[1],"userName"=>$row[2],"userAge"=>$row[3]));
}
echo json_encode(array("response"=>$response));
mysqli_close($con);
?>
List.php 파일
데이터파일에 접속한 이유에 모든 유저를 뽑아온다.
empty activity를 생성합니다.
이름은 ManagementActivity로 생성
management 레이아웃에서 userListTextView의 text view를 생성해줍니다.
package org.techtown.management;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView idText = (TextView) findViewById(R.id.idText);
TextView passwordText = (TextView) findViewById(R.id.passwordText);
TextView welcomeMessage = (TextView) findViewById(R.id.welcomeMessage);
Button managementButton = (Button) findViewById(R.id.managementButton);
Intent intent = getIntent();
String userID = intent.getStringExtra("userID");
String userPassword = intent.getStringExtra("userPassword");
String message = "환영합니다, " + userID + "님!";
idText.setText(userID);
passwordText.setText(userPassword);
welcomeMessage.setText(message);
if(!userID.equals("admin"))
{
//managementButton.setEnabled(false);
managementButton.setVisibility(View.GONE);
}
managementButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
new BackgroundTask().execute();
}
});
}
//내부클래스
class BackgroundTask extends AsyncTask<Void,Void,String>
{
String target;
@Override
protected void onPreExecute(){
target = "http://pssin1.cafe24.com/List.php";
//초기화하는부분
}
@Override
protected String doInBackground(Void... voids){
try{
URL url = new URL(target);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp;
StringBuilder stringBuilder = new StringBuilder();
while((temp = bufferedReader.readLine()) !=null)
{
stringBuilder.append(temp + "\n");
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
//해당문자열의 집합 반환
return stringBuilder.toString().trim();
}catch (Exception e){
e.printStackTrace();
}
//오류발생시 null
return null;
}
@Override
public void onProgressUpdate(Void... values){
super.onProgressUpdate(values);
}
@Override
public void onPostExecute(String result){
Intent intent = new Intent(MainActivity.this,ManagementActivity.class);
intent.putExtra("userList",result);
MainActivity.this.startActivity(intent);
}
}
}
Main Activity 작성
managementButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
new BackgroundTask().execute();
}
});
회원 관리 버튼을 클릭 하였을 경우 BackgroundTask(내부클래스)를 실행시킵니다.
class BackgroundTask extends AsyncTask<Void,Void,String>
{
String target;
@Override
protected void onPreExecute(){
target = "http://pssin1.cafe24.com/List.php";
//초기화하는부분
}
내부클래스를 만들고 AsyncTask를 상속받아 사용합니다.
그리고 초기화합니다. 특정웹사이트의 php파일로
@Override
protected String doInBackground(Void... voids){
try{
URL url = new URL(target);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp;
StringBuilder stringBuilder = new StringBuilder();
while((temp = bufferedReader.readLine()) !=null)
{
stringBuilder.append(temp + "\n");
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
//해당문자열의 집합 반환
return stringBuilder.toString().trim();
실질적으로 실행되는 부분 null이 나올때까지 하나식 읽으면서 append 해줍니다.
@Override
public void onProgressUpdate(Void... values){
super.onProgressUpdate(values);
}
그냥 선언만 한것
@Override
public void onPostExecute(String result){
Intent intent = new Intent(MainActivity.this,ManagementActivity.class);
intent.putExtra("userList",result);
MainActivity.this.startActivity(intent);
}
화면전환이 일어나게해줍니다
package org.techtown.management;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class ManagementActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_management);
TextView userListTextView = (TextView) findViewById(R.id.userListTextView);
Intent intent = getIntent();
userListTextView.setText(intent.getStringExtra("userList"));
}
}
ManagementActivity 소스
TextView userListTextView = (TextView) findViewById(R.id.userListTextView);
Intent intent = getIntent();
userListTextView.setText(intent.getStringExtra("userList"));
management 레이아웃 과 연결시켜주고
intent를 이용해서 값을 넘겨받는다.
그리고 userListTextView에 받아온 String값을 반환한다.
반응형
'개인공부' 카테고리의 다른 글
안드로이드 : 회원 관리 프로젝트(회원 삭제) (0) | 2020.07.08 |
---|---|
안드로이드 : 회원 관리 프로젝트(리스트 뷰) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(로그인 및 메인 화면) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(회원가입) (0) | 2020.07.08 |
안드로이드 : 회원 관리 프로젝트(DB구축) (0) | 2020.07.08 |