📝레트로핏 라이브러리를 이용해 RecyclerView 화면 처리하기
먼저 API처리 클래스에 GET으로 메모 리스트를 가져오는 API를 만들어준다
public interface MemoApi {
// 내 메모 가져오는 API
@GET("/memo")
Call<MemoList> getMemoList(@Header("Authorization") String token, @Query("offset") int offset,
@Query("limit") int limit);
}
레트로핏 라이브러리를 통해서 응답받는 클래스도 만들어주는데
데이터가 아래 이미지처럼 리스트로 오기때문에 리스트클래스와 그 리스트의 데이터를 받을 클래스로 두개 만들어준다
(private이기 때문에 Getter / Setter도 만들어준다)
public class MemoList implements Serializable {
private String result;
private List<Memo> items;
private int count;
}
public class Memo implements Serializable {
private int id;
private String title;
private String datetime;
private String content;
private String createdAt;
private String updatedAt;
}
어댑터를 만들고(참고 https://coding-jisu.tistory.com/260)
데이터를 받아와 리사이클러뷰에 표시하는 함수로 만들어 필요한 곳에 사용해준다
※ 멤버변수 입력하기 ArrayList<Memo> memoArrayList = new ArrayList<>();
private void getNetworkData() {
progressBar.setVisibility(View.VISIBLE);
Retrofit retrofit = NetworkClient.getRetrofitClient(MainActivity.this);
MemoApi api = retrofit.create(MemoApi.class);
Call<MemoList> call = api.getMemoList("Bearer " + accessToken, 0, 20);
call.enqueue(new Callback<MemoList>() {
@Override
public void onResponse(Call<MemoList> call, Response<MemoList> response) {
progressBar.setVisibility(View.GONE);
if (response.isSuccessful()) {
// 정상적으로 데이터 받았으니 리사이클러뷰에 표시한다
MemoList memoList = response.body();
memoArrayList.addAll(memoList.getItems());
adapter = new MemoAdapter(MainActivity.this, memoArrayList);
recyclerView.setAdapter(adapter);
} else {
Toast.makeText(MainActivity.this,"서버에 문제가 있습니다", Toast.LENGTH_SHORT).show();
return;
}
}
@Override
public void onFailure(Call<MemoList> call, Throwable t) {
progressBar.setVisibility(View.GONE);
}
});
}
'Android Studio' 카테고리의 다른 글
[Android Studio] Retrofit 라이브러리를 이용할 CRUD API 처리할 클래스 만들기 (0) | 2023.02.10 |
---|---|
[Android Studio] 날짜/시간 정보 입력받기 (DatePickerDialog/TimePickerDialog) (0) | 2023.02.10 |
[Android Studio] Retrofit 라이브러리를 이용해 POST로 API 호출하기 (0) | 2023.02.09 |
[Android Studio] 안드로이드 네트워크 통신 Retrofit 라이브러리 사용하기 (0) | 2023.02.09 |
[Android Studio] 네트워크를 통해서 로직처리를 할때 보여주는 프로그레스 다이얼로그 만들기 (0) | 2023.02.09 |
댓글