Advertisement
rachmadi

terdekat

Jan 10th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.75 KB | None | 0 0
  1. package com.unggul.yoga.sanjo.Menu;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Intent;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.util.Log;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.AdapterView;
  13. import android.widget.Button;
  14. import android.widget.EditText;
  15. import android.widget.ListView;
  16. import android.widget.TextView;
  17.  
  18. import com.unggul.yoga.sanjo.Pelengkap.JSONParser;
  19. import com.unggul.yoga.sanjo.R;
  20.  
  21. import org.apache.http.NameValuePair;
  22. import org.apache.http.message.BasicNameValuePair;
  23. import org.json.JSONArray;
  24. import org.json.JSONObject;
  25.  
  26. import java.util.ArrayList;
  27. import java.util.HashMap;
  28. import java.util.List;
  29.  
  30. public class Terdekat extends AppCompatActivity {
  31. TextView tvText,tvValue;
  32. EditText etAsal,etTujuan;
  33. ListView lvlokasiterdekat;
  34. Button btTerdekat;
  35. String url1, url2, url3,url;
  36. String kategori,nama,deskripsi,latitude,longitude,id,file_gambar,alamat,lokasi;
  37. JSONParser jsonParser = new JSONParser();
  38. JSONArray jsonstatus = null;
  39. JSONObject jsonObj;
  40. ProgressDialog pDialog;
  41. public static ArrayList<HashMap<String, String>> liststatus = new ArrayList<HashMap<String,String>>();
  42. private static final String URL9 = "http://192.168.100.10/yu/lokasi.php";
  43. private static final String TAG_NAMA = "nama";
  44. private static final String TAG_KATEGORI = "kategori";
  45. private static final String TAG_SUKSES = "sukses";
  46. private static final String TAG_DESKRIPSI = "deskripsi";
  47. private static final String TAG_LATITUDE = "latitude";
  48. private static final String TAG_LONGITUDE = "longitude";
  49. private static final String TAG_LOKASI = "lokasi";
  50. private static final String TAG_FILE_GAMBAR = "file_gambar";
  51. private static final String TAG_ALAMAT = "alamat";
  52. private static final String TAG_ID = "id";
  53. int j = 0;
  54.  
  55. @Override
  56. protected void onCreate(Bundle savedInstanceState) {
  57. super.onCreate(savedInstanceState);
  58. setContentView(R.layout.activity_terdekat);
  59. // tvText= (TextView) findViewById(R.id.tvText);
  60. // tvValue =(TextView)findViewById(R.id.tvValue);
  61. // etAsal = (EditText)findViewById(R.id.etAsal);
  62. // etTujuan =(EditText)findViewById(R.id.etTujuan);
  63. lvlokasiterdekat=(ListView)findViewById(R.id.lvLokasiTerdekat);
  64.  
  65. Bundle extras = getIntent().getExtras();
  66. kategori = extras.getString("kategori");
  67. System.out.println(kategori);
  68. // btTerdekat = (Button) findViewById(R.id.btTerdekat);
  69. lvlokasiterdekat.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  70.  
  71. @Override
  72. public void onItemClick(AdapterView<?> arg0, View arg1, int position,
  73. long arg3) {
  74. // TODO Auto-generated method stub
  75. for (int i = 0; i < liststatus.size(); i++) {
  76. if (position == i) {
  77. HashMap<String, String> statusmap = liststatus.get(i);
  78. kategori = statusmap.get(TAG_KATEGORI);
  79. System.out.println("tipe kategori : " + kategori);
  80. kategori = statusmap.get(TAG_KATEGORI);
  81. deskripsi = statusmap.get(TAG_DESKRIPSI);
  82. file_gambar = statusmap.get(TAG_FILE_GAMBAR);
  83. lokasi = statusmap.get(TAG_LOKASI);
  84. latitude = statusmap.get(TAG_LATITUDE);
  85. longitude = statusmap.get(TAG_LONGITUDE);
  86. nama = statusmap.get(TAG_NAMA);
  87. alamat = statusmap.get(TAG_ALAMAT);
  88. id = statusmap.get(TAG_ID);
  89. System.out.println("tipe kategori : " + kategori);
  90. Intent intent = new Intent(Terdekat.this, Detail.class);
  91.  
  92.  
  93. intent.putExtra(TAG_KATEGORI, kategori);
  94. intent.putExtra(TAG_DESKRIPSI, deskripsi);
  95. intent.putExtra(TAG_FILE_GAMBAR, file_gambar);
  96. intent.putExtra(TAG_LATITUDE, latitude);
  97. intent.putExtra(TAG_LONGITUDE, longitude);
  98. intent.putExtra(TAG_LOKASI, lokasi);
  99. intent.putExtra(TAG_NAMA, nama);
  100. intent.putExtra(TAG_ALAMAT, alamat);
  101. intent.putExtra(TAG_ID, id);
  102. startActivity(intent);
  103. }
  104. }
  105.  
  106.  
  107. }
  108. });
  109.  
  110. // int position;
  111. // @Override
  112.  
  113.  
  114. // tvText.setText(latitude+","+longitude);
  115.  
  116.  
  117.  
  118. new custom().execute();
  119. }
  120.  
  121. public void getDistance(String lat, String lng){
  122. String asal = "-2.966806,104.805536";
  123. String tujuan = lat+","+lng;
  124. url1 = "http://maps.googleapis.com/maps/api/directions/json?origin=";
  125. url2 = "&destination=";
  126. url3 = "&sensor=false&mode=%22DRIVING%22";
  127. url = url1 + asal + url2 + tujuan + url3;
  128. System.out.println("URL: " + url);
  129. new JarakLokasi().execute();
  130. }
  131.  
  132. @Override
  133. public boolean onCreateOptionsMenu(Menu menu) {
  134. // Inflate the menu; this adds items to the action bar if it is present.
  135. getMenuInflater().inflate(R.menu.menu_terdekat, menu);
  136. return true;
  137. }
  138.  
  139. @Override
  140. public boolean onOptionsItemSelected(MenuItem item) {
  141. // Handle action bar item clicks here. The action bar will
  142. // automatically handle clicks on the Home/Up button, so long
  143. // as you specify a parent activity in AndroidManifest.xml.
  144. int id = item.getItemId();
  145.  
  146. //noinspection SimplifiableIfStatement
  147. if (id == R.id.action_settings) {
  148. return true;
  149. }
  150.  
  151. return super.onOptionsItemSelected(item);
  152. }
  153.  
  154. class JarakLokasi extends AsyncTask{
  155.  
  156. @Override
  157. protected Object doInBackground(Object[] params) {
  158. JSONParser jsonParser = new JSONParser();
  159.  
  160. try {
  161. JSONObject json = jsonParser.getJSONFromUrl(url);
  162. Log.d("Pesan : ",json.toString());
  163. JSONArray routesarray = json.getJSONArray("routes");
  164. Log.d("Pesan1 : ",routesarray.toString());
  165. JSONObject routes = routesarray.getJSONObject(0);
  166. //Log.d("Pesan2 : ",legs.toString());
  167. JSONArray legs = routes.getJSONArray("legs");
  168. JSONObject steps = legs.getJSONObject(0);
  169. JSONObject distance = steps.getJSONObject("distance");
  170. Log.d("Distance : ",distance.toString());
  171. }
  172. catch (Exception e){
  173.  
  174. }
  175. return null;
  176. }
  177.  
  178. @Override
  179. protected void onPostExecute(Object o) {
  180. super.onPostExecute(o);
  181. //j = j + 1;
  182. HashMap<String, String> map = new HashMap<String, String>();
  183. map.put(TAG_KATEGORI,kategori);
  184. map.put(TAG_NAMA, nama);
  185. map.put(TAG_FILE_GAMBAR, file_gambar);
  186. map.put(TAG_DESKRIPSI, deskripsi);
  187. map.put(TAG_LATITUDE, latitude);
  188. map.put(TAG_LONGITUDE, longitude);
  189. map.put(TAG_ALAMAT,alamat);
  190. map.put(TAG_ID, id);
  191. liststatus.add(map);
  192. if (j == liststatus.size()-1){
  193. fillStatus();
  194. }
  195. }
  196. }
  197.  
  198.  
  199. public void fillStatus(){
  200.  
  201. System.out.println("Liststatus(fill): "+liststatus);
  202.  
  203. Kerajinan adapter = new Kerajinan(getApplicationContext(), liststatus);
  204. lvlokasiterdekat.setAdapter(adapter);
  205. }
  206. private class custom extends AsyncTask<String, String, String> {
  207.  
  208. @Override
  209. protected void onPreExecute() {
  210. super.onPreExecute();
  211. pDialog = new ProgressDialog(Terdekat.this);
  212. pDialog.setMessage("Memuat Daftar Tempat...");
  213. pDialog.setIndeterminate(false);
  214. pDialog.setCancelable(true);
  215. pDialog.show();
  216. }
  217.  
  218. @Override
  219. protected String doInBackground(String... args) {
  220. // TODO Auto-generated method stub
  221. int sukses;
  222. // liststatus = new ArrayList<HashMap<String,String>>;
  223.  
  224. // String kategori = util.getkategori(getApplicationContext());
  225.  
  226. List<NameValuePair> params = new ArrayList<NameValuePair>();
  227. params.add(new BasicNameValuePair(TAG_KATEGORI, kategori));
  228.  
  229. try {
  230. jsonObj = jsonParser.makeHttpRequest(URL9, "POST", params);
  231. Log.d("Mengambil Data...", jsonObj.toString());
  232. sukses = jsonObj.getInt(TAG_SUKSES);
  233. if(sukses == 1){
  234. try {
  235. Log.d("Status Data : ", jsonObj.getString(TAG_LOKASI));
  236. jsonstatus = jsonObj.getJSONArray(TAG_LOKASI);
  237. liststatus.clear();
  238.  
  239. for(int i = 0; i < jsonstatus.length(); i++){
  240. JSONObject c = jsonstatus.getJSONObject(i);
  241. String nama = c.getString(TAG_NAMA);
  242. String deskripsi = c.getString(TAG_DESKRIPSI);
  243. String longitude = c.getString(TAG_LONGITUDE);
  244. String latitude = c.getString(TAG_LATITUDE);
  245. String file_gambar = c.getString(TAG_FILE_GAMBAR);
  246. String alamat = c.getString(TAG_ALAMAT);
  247. String id = c.getString(TAG_ID);
  248.  
  249. //getDistance(latitude, longitude);
  250. // System.out.println("latitude : " + getDistance(););
  251. System.out.println("data : " + kategori);
  252. System.out.println("data : " + nama);
  253. System.out.println("data : " + deskripsi);
  254. System.out.println("data : " + longitude);
  255. System.out.println("data : " + latitude);
  256. System.out.println("data : " + file_gambar);
  257. System.out.println("data : " + alamat);
  258. System.out.println("data : " + id);
  259.  
  260. HashMap<String, String> map = new HashMap<String, String>();
  261. map.put(TAG_KATEGORI,kategori);
  262. map.put(TAG_NAMA, nama);
  263. map.put(TAG_FILE_GAMBAR, file_gambar);
  264. map.put(TAG_DESKRIPSI, deskripsi);
  265. map.put(TAG_LATITUDE, latitude);
  266. map.put(TAG_LONGITUDE, longitude);
  267. map.put(TAG_ALAMAT,alamat);
  268. map.put(TAG_ID, id);
  269. liststatus.add(map);
  270. }
  271. } catch (Exception e) {
  272. // TODO: handle exception
  273. }
  274.  
  275. } else {
  276. Log.d("Error", jsonObj.getString(TAG_DESKRIPSI));
  277. }
  278. } catch (Exception e) {
  279. // TODO: handle exception
  280. e.printStackTrace();
  281. }
  282. return null;
  283. }
  284.  
  285. @Override
  286. protected void onPostExecute(String result) {
  287. // TODO Auto-generated method stub
  288. super.onPostExecute(result);
  289. pDialog.dismiss();
  290. setDistance();
  291. //System.out.println("Fill status...");
  292. //fillStatus();
  293. }
  294.  
  295. }
  296.  
  297. public void setDistance(){
  298. for (int j = 0; j < liststatus.size(); j++) {
  299.  
  300. // while (j == 0){
  301. HashMap<String, String> statusmap = liststatus.get(j);
  302. kategori = statusmap.get(TAG_KATEGORI);
  303. System.out.println("setDistance : " + j);
  304. kategori = statusmap.get(TAG_KATEGORI);
  305. deskripsi = statusmap.get(TAG_DESKRIPSI);
  306. file_gambar = statusmap.get(TAG_FILE_GAMBAR);
  307. lokasi = statusmap.get(TAG_LOKASI);
  308. latitude = statusmap.get(TAG_LATITUDE);
  309. longitude = statusmap.get(TAG_LONGITUDE);
  310. nama = statusmap.get(TAG_NAMA);
  311. alamat = statusmap.get(TAG_ALAMAT);
  312. id = statusmap.get(TAG_ID);
  313. getDistance(latitude,longitude);
  314. // HashMap<String, String> pecah_data=liststatus.get(0);
  315. // String latitude = pecah_data.get("latitude");
  316. // String longitude = pecah_data.get("longitude");
  317.  
  318. }
  319. }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement