Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. public class MainActivityFragment extends Fragment {
  2.  
  3. ArrayList<HashMap<String,String>> city_list;
  4. LinearLayout progress;
  5. public MainActivityFragment() {
  6. }
  7. public void onCreate(Bundle savedInstanceState){
  8. super.onCreate(savedInstanceState);
  9. setHasOptionsMenu(true);
  10. ReadJson json = new ReadJson();
  11. json.execute();
  12. }
  13.  
  14. @Override
  15. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  16. Bundle savedInstanceState) {
  17.  
  18. final View view= inflater.inflate(R.layout.fragment_main, container, false);
  19.  
  20. final EditText search= (EditText) view.findViewById(R.id.search_view);
  21. search.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  22. @Override
  23. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  24. if (actionId == EditorInfo.IME_ACTION_SEARCH ||
  25. actionId == EditorInfo.IME_ACTION_DONE ||
  26. actionId == EditorInfo.IME_ACTION_GO ||
  27. event.getAction() == KeyEvent.ACTION_DOWN &&
  28. event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
  29. boolean found = false;
  30. String inserted = v.getText().toString();
  31. for(int i=0;i<city_list.size();i++){
  32. if(inserted.equalsIgnoreCase(city_list.get(i).get("name").toString())){
  33. found=true;
  34. TextView id = (TextView) view.findViewById(R.id.city_id);
  35. id.setText(city_list.get(i).get("id").toString());
  36. TextView lat = (TextView) view.findViewById(R.id.city_lat);
  37. lat.setText(city_list.get(i).get("lat").toString());
  38. TextView lon = (TextView) view.findViewById(R.id.city_long);
  39. lon.setText(city_list.get(i).get("lon").toString());
  40. }
  41. }
  42.  
  43. if(!found) {
  44. Toast.makeText(getContext(), "City not found", Toast.LENGTH_SHORT).show();
  45. }
  46. InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
  47. inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
  48. return true; // consume.
  49. }
  50. return false; // pass on to other listeners.
  51. }
  52. });
  53.  
  54. return view;
  55. }
  56.  
  57. public String loadJsonFromAsset(){
  58. String json = null;
  59. try{
  60. InputStream is = getActivity().getAssets().open("city.list.json");
  61. int size = is.available();
  62. byte[] buffer = new byte[size];
  63. is.read(buffer);
  64. is.close();
  65. json = new String(buffer,"UTF-8");
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. return null;
  69. }
  70. return json;
  71. }
  72.  
  73. public class ReadJson extends AsyncTask<Void,Void,Void>{
  74.  
  75. protected void onPreExecute(){
  76. getActivity().setContentView(R.layout.progressbar_layout);
  77. progress = (LinearLayout) getActivity().findViewById(R.id.progressbar_view);
  78. progress.setVisibility(View.VISIBLE);
  79. }
  80.  
  81. protected void onPostExecute(Void result){
  82. progress.setVisibility(View.GONE);
  83.  
  84. }
  85.  
  86. @Override
  87. protected Void doInBackground(Void... params) {
  88. try{
  89. JSONObject obj = new JSONObject(loadJsonFromAsset());
  90. JSONArray cities = obj.getJSONArray("cities");
  91. city_list= new ArrayList<>();
  92. HashMap<String,String> m_li;
  93.  
  94. for(int i=0;i<cities.length();i++){
  95. JSONObject jo_inside = cities.getJSONObject(i);
  96. String name = jo_inside.getString("name");
  97. Long id = jo_inside.getLong("_id");
  98. Double lat = jo_inside.getJSONObject("coord").getDouble("lat");
  99. Double lon = jo_inside.getJSONObject("coord").getDouble("lon");
  100. String s_id = id.toString();
  101. String s_lat = lat.toString();
  102. String s_lon = lon.toString();
  103. m_li = new HashMap<String, String>();
  104. m_li.put("name", name);
  105. m_li.put("id", s_id);
  106. m_li.put("lat", s_lat);
  107. m_li.put("lon", s_lon);
  108.  
  109. city_list.add(m_li);
  110.  
  111. }
  112. } catch (JSONException e) {
  113. e.printStackTrace();
  114. }
  115. return null;
  116. }
  117. }
  118.  
  119. <?xml version="1.0" encoding="utf-8"?>
  120. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  121. android:orientation="vertical" android:layout_width="match_parent"
  122. android:layout_height="match_parent">
  123.  
  124. <LinearLayout
  125. android:id="@+id/progressbar_view"
  126. android:layout_width="fill_parent"
  127. android:layout_height="wrap_content"
  128. android:gravity="center_horizontal"
  129. android:orientation="vertical" >
  130.  
  131. <LinearLayout
  132. android:layout_width="fill_parent"
  133. android:layout_height="wrap_content"
  134. android:gravity="center_horizontal"
  135. android:orientation="horizontal" >
  136.  
  137. <ProgressBar
  138. style="?android:attr/progressBarStyle"
  139. android:layout_width="wrap_content"
  140. android:layout_height="wrap_content"
  141. android:layout_gravity="center_vertical|center_horizontal" />
  142.  
  143. <TextView
  144. android:layout_width="wrap_content"
  145. android:layout_height="wrap_content"
  146. android:layout_gravity="center_vertical|center_horizontal"
  147. android:text="Loading data..." />
  148. </LinearLayout>
  149.  
  150. <View
  151. android:layout_width="fill_parent"
  152. android:layout_height="1dp"
  153. android:background="#C0C0C0" />
  154. </LinearLayout>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement