Guest User

Untitled

a guest
Dec 4th, 2017
587
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. private ListView lv;
  4. private static String url = "https://api.androidhive.info/contacts/";
  5.  
  6. ArrayList<HashMap<String, String>> contactList;
  7.  
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12.  
  13. contactList = new ArrayList<>();
  14.  
  15. lv = (ListView) findViewById(R.id.list);
  16.  
  17. new GetContacts().execute();
  18. }
  19.  
  20. private class GetContacts extends AsyncTask<Void, Void, Void> {
  21.  
  22. @Override
  23. protected void onPreExecute() {
  24. super.onPreExecute();
  25. }
  26.  
  27. @Override
  28. protected Void doInBackground(Void... arg0) {
  29. HttpHandler sh = new HttpHandler();
  30.  
  31. String jsonStr = sh.makeServiceCall(url);
  32. if (jsonStr != null) {
  33. try {
  34. JSONObject jsonObj = new JSONObject(jsonStr);
  35. JSONArray contacts = jsonObj.getJSONArray("contacts");
  36. for (int i = 0; i < contacts.length(); i++) {
  37. JSONObject c = contacts.getJSONObject(i);
  38.  
  39. String name = c.getString("name");
  40. String email = c.getString("email");
  41.  
  42. HashMap<String, String> contact = new HashMap<>();
  43.  
  44. contact.put("name", name);
  45. contact.put("email", email);
  46. contactList.add(contact);
  47. }
  48. } catch (final JSONException e) {
  49. }
  50. }
  51. return null;
  52. }
  53.  
  54. @Override
  55. protected void onPostExecute(Void result) {
  56. super.onPostExecute(result);
  57.  
  58. ListAdapter adapter = new SimpleAdapter(
  59. MainActivity.this, contactList,
  60. R.layout.list_item, new String[]{"name", "email"}, new int[]{R.id.name,
  61. R.id.email});
  62.  
  63. lv.setAdapter(adapter);
  64. }
  65. }
  66. }
  67.  
  68. public class HttpHandler {
  69.  
  70. public String makeServiceCall(String reqUrl) {
  71. String response = null;
  72. try {
  73. URL url = new URL(reqUrl);
  74. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  75. conn.setRequestMethod("GET");
  76. // read the response
  77. InputStream in = new BufferedInputStream(conn.getInputStream());
  78. response = convertStreamToString(in);
  79. } catch (Exception e) {
  80. }
  81. return response;
  82. }
  83.  
  84. private String convertStreamToString(InputStream is) {
  85. BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  86. StringBuilder sb = new StringBuilder();
  87.  
  88. String line;
  89. try {
  90. while ((line = reader.readLine()) != null) {
  91. sb.append(line).append('n');
  92. }
  93. } catch (IOException e) {
  94. e.printStackTrace();
  95. } finally {
  96. try {
  97. is.close();
  98. } catch (IOException e) {
  99. e.printStackTrace();
  100. }
  101. }
  102. return sb.toString();
  103. }
  104. }
  105.  
  106. {
  107. "contacts": [
  108. {
  109. "name": "leonardo",
  110. "email": "leonardo@gmail.com"
  111. }
  112. },
  113. {
  114. "name": "Johnny",
  115. "email": "johnny@gmail.com"
  116. }
  117. },
  118. {
  119. "name": "jack",
  120. "email": "jack@gmail.com"
  121. }
  122. }
  123. {
  124. "name": "paul",
  125. "email": "paul@gmail.com"
  126. }
  127. }
  128. ]
  129. }
  130.  
  131. leonardo - leonardo@gmail.com
  132. -----------------------------
  133. johnny - johnny@gmail.com
  134. -----------------------------
  135. jack - jack@gmail.com
  136. -----------------------------
  137. paul - paul@gmail.com
  138.  
  139. paul - paul@gmail.com
  140. -----------------------------
  141. jack - jack@gmail.com
  142. -----------------------------
  143. johnny - johnny@gmail.com
  144. -----------------------------
  145. leonardo - leonardo@gmail.com
Add Comment
Please, Sign In to add comment