일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 프로그래밍
- 수제비
- 린소프트웨어개발론
- 시험공부
- 결함테스팅
- 프로그래밍패러다임
- 검증테스팅
- 소프트웨어테스트
- 한국방송통신대학교
- 정보처리기사
- 모바일앱프로그래밍
- 비전공자
- 린개발론
- 정의
- 컴퓨터과학과
- 균일비용탐색
- 테스팅원리
- 소프트웨어공학
- 정처기
- 공부하는직장인
- 정보처리산업기사
- kiss원칙
- 결함테스팅검증테스팅차이
- 언덕오르기탐색
- 컴퓨터과학개론
- 프로그래밍언어패러다임
- 방통대
- A* 알고리즘
- 개발자
- 정처기준비
- Today
- Total
우와테크
android Studio 안드로이드 스튜디오 Get 통신해서 ListView 조회 본문
다들 코틀린쓰나보다. 우와는 자바쓰는데...
Http 통신을 하고 싶은데 정보가 없어서 정리해보JAVA
특히 @Get방식은 더없어서 이걸로 정리하기로 한다.
구현하기가 어려운 만큼 이론도 어렵다.
구현하다가 보게 되는 용어만 간단히 집고 가본다.
● CRUD
데이터를 관리하는 것 - Create(추가)Read(읽기,조회)Update(수정)Delete(삭제)의 방법으로 데이터를 관리.
● HTTP 통신
앱을 통해 데이터베이스에 접근하는데 다리역할을 하는 WEB에서 데이터를 담는 수레역할을 하는 아이.
request(요청)response(응답)으로 표현한다.
● REST API
HTTP 통신에 필요한 HTTP URI, HTTP Method 등을 가지고 있는 API(Application Programming Interface)
● retrofit
REST API 를 위해 만들어진 라이브러리
>>>>우와는 retrofit 라이브러리를 이용해서 REST API를 쓸꺼다.
>>>>왜냐하면 HTTP통신을 통해 데이터 CRUD를 해야 하기 때문이다.
(역시 이론은 어렵다..여기까지)
구현시작
1. 라이브러리 추가
2. 권한 추가
3. API 생성
4. Model Class (XXResponse) 정의
5. Get메소드 정의
6. 필요한 곳에 retrofit 정의
7. adapter 수정
끝
소상히 알려준다.
라이브러리 추가
1. 왼쪽 탭에 Project에서 콤보박스를 Android로 맞춘다.
2. app이 아니고 Gradle Scripts 에서 build.gradle (Module:~~~~~) 이다. project 가 아니라는 것이다.
3. dependencies 에 아래 소스를 복붙한다.
implementation 'com.squareup.retrofit2:retrofit:[버전]'
implementation 'com.squareup.retrofit2:converter-gson:[버전]'
implementation 'com.squareup.okhttp3:okhttp:[버전]'
implementation 'com.squareup.okhttp3:logging-interceptor:[버전]'
버전정보는 업데이트 될수 있어서 생략했다.
권한 추가
1. 왼쪽 탭에 Project에서 콤보박스를 Android로 맞춘다.
2. app에서 manifests - AndroidManifest.xml이다.
3. <manifest> </manifest> 사이에 아래 소스를 복붙한다.
<uses-permission android:name="android.permission.INTERNET" />
API 생성
1. 왼쪽 탭에 Project에서 콤보박스를 Android로 맞춘다.
2. app에서 java에서 오른쪽 마우스를 누르면 New - Java Class로 새로운 자바 파일을 생성한다.
package user.example.myapplication;
public interface Api {
}
Model Class (XXResponse) 정의
1. 왼쪽 탭에 Project에서 콤보박스를 Android로 맞춘다.
2. app에서 java에서 오른쪽 마우스를 누르면 New - Java Class로 새로운 자바 파일을 생성한다.
package user.example.myapplication;
import com.google.gson.annotations.SerializedName;
public class UserResponse {
@SerializedName("id")
public String id;
@SerializedName("name")
public String name;
@SerializedName("pw")
public String pw;
@SerializedName("gender")
public String gender;
@SerializedName("job")
public String job;
Get메소드 정의
1. Api.java에 아래 소스처럼 입력한다.
@GET("getuser")
Call<List<UserResponse>> GetUserList(
@Query("gender") String gender,
@Query("job") String job,
);
@GET : get method를 쓰겠다. 다른 method를 쓰고자 한다면 이자리에 post/put/delete를 쓴다.
("----------") : method로 사용할 이름. uri에서 보이는 메소드명이다
기본 형식 : Call<Response명> 메소드명(
@Query("변수명a") 자료형 변수명b );
변수명a : uri에 보이는 변수명
변수명b : 소스와 연결되는 변수명, 소스에 정의한 변수의 자료형과 맞춰준다.
필요한 곳에 retrofit 정의
MainActivity.java
private UserAdapter adapter;
private Api api;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
api = httpAPI.getClient().create(Api.class);//WEB-SERVICE 연결
TextView gender = findViewById(R.id.txtGender);
TextView job = findViewById(R.id.textJob);
Button buttonOK = findViewById(R.id.btnOk);
buttonOK.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
GetUserList(gender, job);
}
});
}
public void GetUserList(String id, String name) {
Call<List<UserResponse>> call = api.GetUserList(gender, job);
call.enqueue(new Callback<List<UserResponse>>() {
@Override
public void onResponse(Call<List<UserResponse>> call, Response<List<UserResponse>> response) {
List<UserResponse> resultList = response.body();
onSetUserList(resultList);
}
@Override
public void onFailure(Call<List<UserResponse>> call, Throwable t) {
}
});//Get
public void onSetUserList(List<UserResponse> resultList) {
adapter = new UserAdapter();
final ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
adapter.addItems(resultList);
}
adapter 수정
1. 더 소상하게 적어놓은 ListView 항목나타내기를 작성한다.
안드로이드 스튜디오 ListView 항목 나타내기
만만하게 봤다가 헤매는 ListView. DB 연결하기 전에 구조먼저 짜보자 필요한 xml 파일 2개 : activity_listview_main화면, layout_listview 화면 필요한 java 파일 3개 : ListviewActivity, VO, Adapter 구현하기..
uwatech.tistory.com
2. UserAdapter.java에서 addItems를 추가한다.
public void addItems(List<UserResponse> reportList) {
for(int i=0; i<UserList.size();i++)
{
UserVO vo = new UserVO();
vo.setId(UserList.get(i).id);
vo.setName(UserList.get(i).name);
vo.setGender(UserList.get(i).gender);
vo.setJob(UserList.get(i).job);
userVO.add(vo);
}
}
끝..
post와 get의 차이점에 대한 설명은 좀더 똑똑해질 우와에게 맡기기로 하자.
2022.02.03
'java-androidStudio' 카테고리의 다른 글
android 안드로이드 ScrollView 사용법 (0) | 2022.05.17 |
---|---|
안드로이드 스튜디오 android studio 앞자리 숫자 0 넣기. (0) | 2022.02.22 |
안드로이드 스튜디오 android studio에서 alert창 띄우기와 this 관련 error 오류 해결 (0) | 2022.02.10 |
androidStudio 안드로이드스튜디오 AppcompatActivity 오류 Error (0) | 2022.02.04 |
Android Studio 안드로이드 스튜디오 TextView에서 double -> String 형 변환해서 값 받아오기 (0) | 2022.02.03 |