단 안드로이드 스튜디오와 wamp서버 그리고 PHP를 사용하고 있고, DB는 MYSQL을 씁니다.
public class GetData extends AsyncTask<String, Void, String> {
ProgressDialog progressDialog;
String errorString = null;
@Override
protected void onPreExecute() { super.onPreExecute();}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressDialog.dismiss();
Log.d(TAG, "response - " + result);
if (result == null){
Toast.makeText(getApplicationContext(), errorString, Toast.LENGTH_LONG).show();
}
else {
mJsonString = result;
showResult();
}}
@Override
protected String doInBackground(String... params) {
String serverURL = params[0];
try {
URL url = new URL(serverURL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setReadTimeout(5000);
httpURLConnection.setConnectTimeout(5000);
httpURLConnection.connect();
int responseStatusCode = httpURLConnection.getResponseCode();
Log.d(TAG, "response code - " + responseStatusCode);
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();
return sb.toString().trim();
} catch (Exception e) {
Log.d(TAG, "InsertData: Error ", e);
errorString = e.toString();
return null;
}
}
}
안드로이드에서 디비 연동은 위와 같이 하고 있고,
<?php
$link=mysqli_connect("*","*","*", "assistant" );
if (!$link) { echo "MySQL 접속 에러 : "; echo mysqli_connect_error(); exit(); }
mysqli_set_charset($link,"utf8");
$sql="select name, inform from assistant.ingre";
$result=mysqli_query($link,$sql);
$data = array();
if($result){
while($row=mysqli_fetch_array($result)){ array_push($data, array('name'=>$row[0], 'inform'=>$row[1] ));}
header('Content-Type: application/json; charset=utf8');
$json = json_encode(array("하이"=>$data), JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);
echo $json; }
else{ echo "SQL문 처리중 에러 발생 : "; echo mysqli_error($link); }
mysqli_close($link); ?>
PHP는 위와 같이 쓰고 있습니다.
여기서 1번 액티비티와 2번액티비티가 있으면
1번 액티비티는 GridVIew와 setOnitemListener를 사용해서 뷰의 어느 한 곳을 터치 했을때, position 값을 받아와서 Intent를 이용해 2번액티비티로 그 정보를 넘겨주고,
2번 액티비티에서 그 정보를 받아서 DB서버에서 그와 맞는 정보를 가져오고 싶습니다.
일단 기본적인 레이아웃과 액티비티는 구현했는데, 문제가 되는 부분이 DB서버에서 1번액티비티를 통해 넘겨주는 값을 받아서 그에 맞는 데이터를 불러오는 과정인데... 이 부분은 자바부분만 고치면 되는지, PHP를 고쳐야하는지를 잘 모르겠네요...
요약해서 말씀드리면 2번 액티비티(1개의 액티비티)에서 1번 액티비티에서 넘겨주는 값에 따라 다른 데이터를 표시해 주고 싶습니다.