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는 로그 캣을 보기 위한 코드입니다. 없어도 됩니다.
'Coding > Android' 카테고리의 다른 글
안드로이드 Volley 공공데이터 가져오기 (4)- 다중 마커 (0) | 2022.06.02 |
---|---|
안드로이드 Volley 공공데이터 가져오기 (3)- 구글맵 설정 (0) | 2022.05.31 |
안드로이드 Volley 공공데이터 가져오기 (1) - 공공데이터 설정 (0) | 2022.05.28 |
안드로이드 게임 2022년부터 윈도우에서 실행 가능해진다. (2) | 2021.12.14 |
Nearby Share 기능 소개 및 후기 (0) | 2021.12.13 |