본문 바로가기
Android Studio

[Android Studio] 네트워크로 정보 가져올때 ProgressBar 사용하기

by coding_su 2023. 2. 7.

📝네트워크로 정보 가져올때 프로그래스바 사용하기

네트워크를 가져오는 동안 로딩중같은 동그란 표시를 나타내기 위해 ProgressBar를 추가했다

프로그래스바 만들때 visibility을 gone으로 설정한다

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:indeterminateTint="#3F51B5"
    android:visibility="gone" />

 

아래코드처럼 네트워크를 호출할때 progressBar.setVisibility(View.VISIBLE);으로 입력해 progressBar를 보이게하고,

네트워크로부터 데이터를 가져왔을때와 가져오지못해 에러가 발생했을때 부분에

progressBar.setVisibility(View.GONE);으로 입력해 progressBar를 보이지 않게 한다

// 네트워크 통신해서 데이터 가져오기
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
JsonObjectRequest request = new JsonObjectRequest(
        Request.Method.GET, URL + "/posting.json", null, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        progressBar.setVisibility(View.GONE);
        // 리스트 데이터 가져오기
        try {
            JSONArray responseData = response.getJSONArray("data");
            for ( int i = 0; i < responseData.length(); i++ ) {
                JSONObject data = responseData.getJSONObject(i);

                int userId = data.getInt("userId");
                int id = data.getInt("id");
                String title = data.getString("title");
                String body = data.getString("body");

                Posting posting = new Posting(userId, id, title, body);
                postingList.add(posting);
            }
        } catch (JSONException e) {
            return;
        }

        adapter = new PostAdapter(MainActivity.this, postingList);
        recyclerView.setAdapter(adapter);

    }
},
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                progressBar.setVisibility(View.GONE);
            }
        }
);
// 네트워크 호출할때 프로그래스바 보이게한다
progressBar.setVisibility(View.VISIBLE);
queue.add(request);

댓글