본문 바로가기
Coding/Android

안드로이드 Volley 공공데이터 가져오기 (2)- Volley 설정 및 공공데이터 가져오기

by 루민즈 2022. 5. 28.
반응형

1편 

https://ruminz.tistory.com/147

1편을 보고 와주세요 공공데이터랑 json설정 내용이 있으니 꼭 참고해주시기 바랍니다. 

 

1.안드로이드 Volley설정 

2.activity_main.xml 

3.Example.java

4.items.java

5.MainActivity.java

6.실행결과

1.안드로이드 Volley설정 

Volley 라이브러리를 쓰기 전에 공공데이터를 가져와야 되니 AndroidManifest.xml에서

 

매니페스트 파일

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

이걸 입력해줘야 됩니다.  매니패스트 태그랑 어플리케이션 태그 사이에 입력해주세요 

그런 다음 build.gradle파일에 들어가서 

 

 

다음과 같이 gson이랑 volley를 입력해줍니다. 

 

이러면 Volley랑 gson 라이브러리를 사용할 수 있게 됩니다. 마지막으로 Sync Now를 입력해줍니다. 

 

그리고 Example 자바 파일이랑 items 자바 파일을 만들어 줍니다. 

 

 

2. activity_main.xml 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview" />

</LinearLayout>

TextView 하나만 넣어주세요 값만 제대로 나오는지 확인하는 거니까 TextView 하나면 충분합니다. 

 

3. Example.java

package com.example.test;

import java.util.List;

public class Example {
    private String resultCode;
    private String resultMsg;
    private long numOfRows;
    private long pageNo;
    private long totalCount;
    private List<items> items = null;

    public String getResultCode() {
        return resultCode;
    }

    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }

    public String getResultMsg() {
        return resultMsg;
    }

    public void setResultMsg(String resultMsg) {
        this.resultMsg = resultMsg;
    }

    public long getNumOfRows() {
        return numOfRows;
    }

    public void setNumOfRows(long numOfRows) {
        this.numOfRows = numOfRows;
    }

    public long getPageNo() {
        return pageNo;
    }

    public void setPageNo(long pageNo) {
        this.pageNo = pageNo;
    }

    public long getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(long totalCount) {
        this.totalCount = totalCount;
    }

    public List<items> getItems() {
        return items;
    }

    public void setItems(List<items> items) {
        this.items = items;
    }




}

Example.java 파일은 1편에서 json파일을 자바 파일로 변경해주는 사이트에서 있습니다. 

그걸 복사 붙여 넣기 해주시면 됩니다. 1편을 안 보셨다면 저위에 코드로 입력해주세요 

 

 

 

 

 

4.items.java

package com.example.test;

public class items {
    private String chrstnNm;
    private String useOpenTime;
    private String userRestrict;
    private String chargerStatus;
    private String chrstnType;
    private String rdnmadr;
    private String locationDetail;
    private String manageEntrpsNm;
    private String manageEntrpsTelno;
    private String latitude;
    private String longitude;
    private String chrstnId;
    private String chargerId;
    private String chargerCapacity;
    private String orgId;
    private String privateCarPark;
    private String referenceDate;
    private String sn;

    public String getChrstnNm() {
        return chrstnNm;
    }

    public void setChrstnNm(String chrstnNm) {
        this.chrstnNm = chrstnNm;
    }

    public String getUseOpenTime() {
        return useOpenTime;
    }

    public void setUseOpenTime(String useOpenTime) {
        this.useOpenTime = useOpenTime;
    }

    public String getUserRestrict() {
        return userRestrict;
    }

    public void setUserRestrict(String userRestrict) {
        this.userRestrict = userRestrict;
    }

    public String getChargerStatus() {
        return chargerStatus;
    }

    public void setChargerStatus(String chargerStatus) {
        this.chargerStatus = chargerStatus;
    }

    public String getChrstnType() {
        return chrstnType;
    }

    public void setChrstnType(String chrstnType) {
        this.chrstnType = chrstnType;
    }

    public String getRdnmadr() {
        return rdnmadr;
    }

    public void setRdnmadr(String rdnmadr) {
        this.rdnmadr = rdnmadr;
    }

    public String getLocationDetail() {
        return locationDetail;
    }

    public void setLocationDetail(String locationDetail) {
        this.locationDetail = locationDetail;
    }

    public String getManageEntrpsNm() {
        return manageEntrpsNm;
    }

    public void setManageEntrpsNm(String manageEntrpsNm) {
        this.manageEntrpsNm = manageEntrpsNm;
    }

    public String getManageEntrpsTelno() {
        return manageEntrpsTelno;
    }

    public void setManageEntrpsTelno(String manageEntrpsTelno) {
        this.manageEntrpsTelno = manageEntrpsTelno;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getChrstnId() {
        return chrstnId;
    }

    public void setChrstnId(String chrstnId) {
        this.chrstnId = chrstnId;
    }

    public String getChargerId() {
        return chargerId;
    }

    public void setChargerId(String chargerId) {
        this.chargerId = chargerId;
    }

    public String getChargerCapacity() {
        return chargerCapacity;
    }

    public void setChargerCapacity(String chargerCapacity) {
        this.chargerCapacity = chargerCapacity;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public String getPrivateCarPark() {
        return privateCarPark;
    }

    public void setPrivateCarPark(String privateCarPark) {
        this.privateCarPark = privateCarPark;
    }

    public String getReferenceDate() {
        return referenceDate;
    }

    public void setReferenceDate(String referenceDate) {
        this.referenceDate = referenceDate;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }


}

 

items.java파일로 Example.java파일과 마찬가지로 복사 붙여 넣기를

해주던가 아니면 저위에 대로 입력해주시면 됩니다. 

 

5.MainActivity.java

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.android.volley.AuthFailureError;
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.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private static RequestQueue requestQueue;
    TextView textView;
    private String URL = "http://apis.data.go.kr/3740000/suwonEvChrstn/getdatalist?serviceKey=본인의 인증키&numOfRows=30&pageNo=0&sortKey=chrstnType&filterKey=chrstnType&filterValues=DC%EC%BD%A4%EB%B3%B4&type=json";
    private Gson gson;
    private Example example;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.textview);

        if(requestQueue == null){
            requestQueue = Volley.newRequestQueue(getApplicationContext());
        }

        Request();
    }

    public void Request(){
        StringRequest request  = new StringRequest(
                Request.Method.GET,
                URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.v("태그","리스폰"+response);
                        gson = new Gson();
                        example = gson.fromJson(response,Example.class);
                        textView.setText(example.getItems().get(0).getChrstnNm());
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.v("태그","에러"+error.getMessage());
                    }
                }) {
            @Override
            protected Map<String,String> getParams() throws AuthFailureError {
                Map<String,String> param = new HashMap<String,String>();
                return param;
            }
        };
        request.setShouldCache(false);
        requestQueue.add(request);
    }
}

 

위에 대로 입력해주세요 여기서 중요한 건 무조건 본인의 인증키를 입력해주세요 

 

6. 실행결과 

실행결과

 

실행결과를 보면 수원 종합운동장이라고 나와있습니다. 

이 부분은 MainAcitivity에서 

public void onResponse(String response) {
    Log.v("태그","리스폰"+response);
    gson = new Gson();
    example = gson.fromJson(response,Example.class);
    textView.setText(example.getItems().get(0).getChrstnNm());
}

이 부분에 해당이 됩니다. Log.v는 로그 캣을 보기 위한 코드입니다. 없어도 됩니다. 

 


Post

다음글 무직자 대출 알아보기 >