용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요.

용오름체험휴양마을영농조합법인 / 홍천 용오름캠핑장 팸투어 다녀왔어요. 강원도 홍천 서석면에 위치해있으며 1급수 용오름계곡 바로 옆에 있습니다.홍천군 1등 마을로 마을에서 직접 관리하는 용오름캠핑장,펜션 10개를 운영하고 있으며 각종 모임이 가능하도록 식당,회의실,야외무대가 설치되어 있습니다.홍천군 1등 마을답게 캠핑장,펜션 마을 전지역 wi-fi 사용이 가능하며 매년 봄 팸투어 실시, 여름엔 마을에서 재배한 홉으로 직접만든 맥주축제,마리소리 음악축제 를 열고 있습니다.계곡의 경우 수심이 다양하여 다이빙 포인트가 2곳이 있으며 아이들이 안전하게 물놀이를 할 수 있는 곳도 여러 곳 있습니다. 홍천 용오름캠핑장 팸투어 다녀왔어요. 요즘은 농산촌체험마을에서 캠핑과 여러프로그램을 같이 하는 곳이 추세더라고요. 아미산이 둘러쌓인 청정계곡이 흐르는 아름다운 용오름체험휴양마을 에서 운영하는 홍천 용오름캠핑장 팸투어 다녀왔어요. 테크 앞 강이... 붕어빵 가족의 담너머 세상구경 https://m.blog.naver.com/1092119/220711235599 가을여행-홍천여행- 홍천 용오름 마을 첫째날 여행의 계절 가을입니다. 요즘 저희는 강원도에 꽃힌 상태인지라...카페 행복한 이티씨와 함께하는 홍천 용오름 마을 1박2일 체험에 참가를 하였답니다! 평소 체험 시간보다 조금 늦은 출발을 해서 차가 밀리지 않으려나... 귀여운 단지 https://m.blog.naver.com/sanguidan/50181593653 용오름마을 캠핑장 여름휴가의 시즌이다.. 강원도의 계곡과 시원함을 만끽하기 위해 캠핑장을 검색하다 우연히 알게 된 홍천의 용오름 캠핑장.. 성수기라 캠핑장 요금들이 사악하다 용오름캠핑장 옆엔 해미르 캠핑장이 있는데... ★살로몬의 잇츠캠핑★ https://m.blog.naver.com/freeguy9040/20163628934 맥주효모로 만든 용오름맥주마을 바쏘 맥주샴푸와 맥주마스크팩... 1988년까지 맥주 원료인...

Maria DB ↔ PHP ↔ Android 연동하기 - 5. 어플에서 php로 데이터 전송

Maria DB ↔ PHP ↔ Android 연동하기 - 5. 어플에서 php로 데이터 전송

Maria DB ↔ PHP ↔ Android 연동하기 - 4. JSON 파싱하기를 안보셨다면 먼저 보시는 것을 추천드립니다.

전 포스팅에서는 connect.php로 DB 테이블의 모든 값을 읽어 json 형식으로 되어있는 것을 어플에서 불러오는것을 해보았습니다.

이제 EditText로 원하는 값만 select하여 불러오는 것을 해보겠습니다.

안드로이드 코딩을 하기 전 새로운 php 파일을 만들어주겠습니다. 파일명은 select.php로 해주겠습니다.

tree_name이라는 변수에 어플로부터 받아온 값을 넣어주게 됩니다.

$row[0],'카테고리'=>$row[1],'키워드'=>$row[2],'보유수량'=>$row[3], '주당가격'=>$row[4],'위치'=>$row[5],'특이사항'=>$row[6],'수고'=>$row[7], '근원직경'=>$row[8],'흉고직경'=>$row[9],'수관폭'=>$row[10],'수관길이'=>$row[11], '지하고'=>$row[12],'육종방법'=>$row[13],'입력시간'=>$row[14])); } echo json_encode(array("Tree"=>$result), JSON_UNESCAPED_UNICODE); mysqli_close($con); ?>

전포스팅과 마찬가지로 Manifest.xml에 인터넷 사용허가와 usesCleartextTraffic="true"를 추가해줍니다.

layout_main.xml 입니다. EditText로 나무 이름을 입력 후 버튼을 클릭하면 treeLocation TextView에 나무의 위치를 띄워주게 됩니다.

다음으로 MainActivity.java 입니다.

코드에도 주석으로 남겨두었지만 String selectData에서 "Data="과 php의 post[ ]안의 'Data'이 같아야 합니다.

package com.example.treemanagement; import android.content.pm.ActivityInfo; import android.os.AsyncTask; import android.os.Handler; import android.os.HandlerThread; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Editable; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private TextView textView; private EditText editText; private Button button; private String jsonString; ArrayList treeArrayList; // 나무정보들을 저장할 ArrayList @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.treeLocation); editText = (EditText) findViewById(R.id.editText); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final JsonParse jsonParse = new JsonParse(); // AsyncTask 생성 jsonParse.execute("http://121.153.150.157:81/select.php"); // AsyncTask 실행 } }); } public class JsonParse extends AsyncTask { String TAG = "JsonParseTest"; @Override protected String doInBackground(String... strings) { // execute의 매개변수를 받아와서 사용 String url = strings[0]; try { String selectData = "Data=" + editText.getText().toString(); // 따옴표 안과 php의 post [ ] 안이 이름이 같아야 함 URL serverURL = new URL(url); HttpURLConnection httpURLConnection = (HttpURLConnection) serverURL.openConnection(); httpURLConnection.setReadTimeout(5000); httpURLConnection.setConnectTimeout(5000); httpURLConnection.setRequestMethod("POST"); httpURLConnection.connect(); OutputStream outputStream = httpURLConnection.getOutputStream(); outputStream.write(selectData.getBytes("UTF-8")); outputStream.flush(); outputStream.close(); // 어플에서 데이터 전송 int responseStatusCode = httpURLConnection.getResponseCode(); InputStream inputStream; if(responseStatusCode == HttpURLConnection.HTTP_OK) { inputStream = httpURLConnection.getInputStream(); } else{ inputStream = httpURLConnection.getErrorStream(); } // 연결 상태 확인 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuilder sb = new StringBuilder(); String line; while((line = bufferedReader.readLine()) != null){ sb.append(line); } bufferedReader.close(); Log.d(TAG, sb.toString().trim()); return sb.toString().trim(); // 받아온 JSON 의 공백을 제거 } catch (Exception e) { Log.d(TAG, "InsertData: Error ", e); return null; } } @Override protected void onPostExecute(String fromdoInBackgroundString) { // doInBackgroundString에서 return한 값을 받음 super.onPostExecute(fromdoInBackgroundString); if(fromdoInBackgroundString == null) textView.setText("error"); else { jsonString = fromdoInBackgroundString; treeArrayList = doParse(); if(treeArrayList.size() == 0) textView.setText("검색결과 없음"); // 객체의 크기가 0일때는 검색 결과가 없을 때이므로 검색결과 없음 설정 else textView.setText(treeArrayList.get(0).getLocation()); } } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } @Override protected void onCancelled(String s) { super.onCancelled(s); } private ArrayList doParse() { ArrayList tmpTreeArray = new ArrayList(); try { JSONObject jsonObject = new JSONObject(jsonString); JSONArray jsonArray = jsonObject.getJSONArray("Tree"); for(int i=0;i

참고자료 : https://twinw.tistory.com/29

from http://1d1cblog.tistory.com/134 by ccl(A) rewrite - 2020-03-24 21:54:09

댓글

이 블로그의 인기 게시물

[2020 정보처리기사 실기 - 프로그래밍 언어 활용] 2. 언어 특성 활용...

[PHP] 네이버 Cloud Outbound Mailer API 파일 첨부하기

동적 메모리 할당_현재까지 내가 이해한 내용