private val groupList: Unit private get() { remoteService = RetrofitAPI.getClient().create(RemoteService::class.java) val groupResultCall = remoteService?.getGroupList(Value.encrypt(Value.URLkey())) groupResultCall?.enqueue(object : Callback<GroupResult> { override fun onResponse(call: Call<GroupResult>, response: Response<GroupResult>) { if (response.body()!!.status.contains("success")) { groupItem.clear() val groupData = response.body()!!.message for (item in groupData) { groupItem.add(item) } Log.d("TAG", "Number of groupItem :" + groupItem.size) } }
override fun onFailure(call: Call<GroupResult>,t: Throwable) { } }) } |
Java로 작성한 코드를 코틀린으로 변환하여 테스트하고 적어둔다.
override fun onClick(view: View) { when (view.id) { R.id.btn_drawer -> drawer_layout.openDrawer(GravityCompat.START) R.id.btn_group -> { // 팝업 메뉴 나오게 하는 방법 Log.d("TAG", "popupMenu of groupItem :" + groupItem.size) val popupMenu = PopupMenu(this, view) val menu = popupMenu.menu var i = 0 while (i < groupItem.size) { menu.add(Menu.NONE,i,Menu.NONE,groupItem[i].name) i++ } popupMenu.setOnMenuItemClickListener { item: MenuItem -> val i = item.itemId freeActiveMarkers() getAddrData(item.title.toString()) LocationAt(groupItem[i].latitude.toDouble(),groupItem[i].longitude.toDouble()) Toast.makeText(context,item.title.toString() + " 선택했습니다",Toast.LENGTH_SHORT).show() true } popupMenu.show() } } }
private fun LocationAt(latitude: Double, longitude: Double) { val coord = LatLng(latitude, longitude) mNaverMap!!.moveCamera(CameraUpdate.scrollTo(coord).animate(CameraAnimation.Easing, 300)) }
|
PHP 서버코드
<?php error_reporting(0); //error_reporting(E_ALL); //ini_set("display_errors", 1); header("Cache-Control: no-cache, must-revalidate"); header("Content-type: application/json; charset=utf-8");
// 파일을 직접 실행하는 비정상적 동작을 방지 하기 위한 목적 if(isset($_POST) && $_SERVER['REQUEST_METHOD'] == "POST"){ @extract($_POST); require_once 'path.php';// root 폴더를 기준으로 상대적인 경로 자동 구하기 require_once $g['path_config'].'config.php'; require_once $g['path_class'].'dbconnect.php'; require_once $g['path_class'].'loginClass.php'; $c = new LoginClass;
//키워드 확인 if(!isset($_POST['keyword'])){ $result = array( 'status' => "fail", 'message' => "no keyword" ); echo json_encode($result); exit; }
$keyword=$c->AES_Decode($_POST['keyword']); //키워드 일치 확인 if(strcmp($keyword,$mykey)<>0){ $result = array( 'status' => "keyfail", 'message' => "서버와 단말의 KEY가 일치하지 않습니다." ); echo json_encode($result); exit; }
// 배열 저장 $R = array(); array_push($R,array("name"=>"전체","latitude"=>"37.358752","longitude"=>"127.1149243")); $map_sql = "select name,latitude,longitude from mapTree"; $map_result = mysqli_query($db,$map_sql); while($row = mysqli_fetch_row($map_result)) { array_push($R,array("name"=>$row[0],"latitude"=>$row[1],"longitude"=>$row[2])); }
$status = "success"; $message = $R; $result = array( 'status' => $status, 'message' => $message ); echo json_encode($result); } ?>
|