Guest User

Untitled

a guest
Jan 18th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. public class HerosFragment extends Fragment {
  2.  
  3. private static final int CODE_GET_REQUEST = 1024;
  4. private static final int CODE_POST_REQUEST = 1025;
  5.  
  6. //Variaveis dos componentes
  7. EditText editTextHeroId, editTextName, editTextRealname;
  8. RatingBar ratingBar;
  9. Spinner spinnerTeam;
  10. ProgressBar progressBarList;
  11. ListView listView;
  12.  
  13. FloatingActionButton fabAddHero;
  14.  
  15. //vamos usar essa lista para exibir herói na lista
  16. List<Hero> heroList;
  17.  
  18. @Override
  19. public void onCreate(@Nullable Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21.  
  22. //Preciso inicializar esses dois componentes mas não consigo
  23. progressBarList = (ProgressBar) findViewById(R.id.progressBarList);
  24. listView = (ListView) findViewById(R.id.listViewHeroes);
  25.  
  26. heroList = new ArrayList<>();
  27. readHeroes();
  28. }
  29.  
  30. //Recupera os dados dos herois do banco de dados
  31. private void readHeroes() {
  32. PerformNetworkRequest request = new PerformNetworkRequest(Api.URL_READ_HEROES, null, CODE_GET_REQUEST);
  33. request.execute();
  34. }
  35.  
  36. //Para atualizar a lista de herois
  37. private void refreshHeroList(JSONArray heroes) throws JSONException {
  38. //limpa herois anteriores
  39. heroList.clear();
  40.  
  41. //Cria uma nova lista com os herois atualizados do JSON de resposta
  42. for (int i = 0; i < heroes.length(); i++) {
  43. //getting each hero object
  44. JSONObject obj = heroes.getJSONObject(i);
  45.  
  46. //adiciona os herois a lista
  47. heroList.add(new Hero(
  48. obj.getInt("id"),
  49. obj.getString("name"),
  50. obj.getString("realname"),
  51. obj.getInt("rating"),
  52. obj.getString("teamaffiliation")
  53. ));
  54. }
  55.  
  56. //cria um adapter com a lista de herois
  57. CustomAdapterHero adapter = new CustomAdapterHero(this.getActivity(), heroList);
  58. listView.setAdapter(adapter);
  59. }
  60.  
  61. //classe interna para executar solicitação de rede estendendo um AsyncTask
  62. private class PerformNetworkRequest extends AsyncTask<Void, Void, String> {
  63.  
  64. //o URL onde precisa enviar a solicitação
  65. String url;
  66.  
  67. //Os parametros
  68. HashMap<String, String> params;
  69.  
  70. //O código do pedido para definir se é um GET ou POST
  71. int requestCode;
  72.  
  73. //Construtor para inicializar os valores
  74. PerformNetworkRequest(String url, HashMap<String, String> params, int requestCode) {
  75. this.url = url;
  76. this.params = params;
  77. this.requestCode = requestCode;
  78. }
  79.  
  80. //Quando a tarefa começou a exibir uma barra de progresso
  81. @Override
  82. protected void onPreExecute() {
  83. super.onPreExecute();
  84. progressBarList.setVisibility(View.VISIBLE);
  85. }
  86.  
  87. //Este método dará a resposta do pedido
  88. @Override
  89. protected void onPostExecute(String s) {
  90. super.onPostExecute(s);
  91. progressBarList.setVisibility(GONE);
  92. try {
  93. JSONObject object = new JSONObject(s);
  94. if (!object.getBoolean("error")) {
  95. //atualizando o herolista após cada operação
  96. //então nós conseguimos uma lista atualizada
  97. refreshHeroList(object.getJSONArray("heroes"));
  98. }
  99. } catch (JSONException e) {
  100. e.printStackTrace();
  101. }
  102. }
  103.  
  104. //A operação da rede será realizada em segundo plano
  105. @Override
  106. protected String doInBackground(Void... voids) {
  107. RequestHandler requestHandler = new RequestHandler();
  108.  
  109. if (requestCode == CODE_POST_REQUEST)
  110. return requestHandler.sendPostRequest(url, params);
  111.  
  112.  
  113. if (requestCode == CODE_GET_REQUEST)
  114. return requestHandler.sendGetRequest(url);
  115.  
  116. return null;
  117. }
  118. }
  119.  
  120. }
Add Comment
Please, Sign In to add comment