Retrofitを用いて、非同期ではなく同期的にcallしたいのですがどうすればよろしいでしょうか?
①現在call.enque(非同期)で動いているコード
Java
1User user; 2 user = new User(); 3 4 SharedPreferences lineData = getSharedPreferences("DataSave", Context.MODE_PRIVATE); 5 String level = lineData.getString("user_id", "No Data"); 6 Log.e("SharedUser", level); 7 8 9 user.lineUserId = level; 10 Log.e("StoreOk", user.lineUserId); 11 12 KoredakeView = (ListView) findViewById(R.id.koredakeView); 13 14 15 Retrofit retrofit = new Retrofit.Builder() 16 .baseUrl("https://travossbot.herokuapp.com") 17 .addConverterFactory(GsonConverterFactory.create()) 18 .build(); 19 Koredakeinterface koreservice = retrofit.create(Koredakeinterface.class); 20 21 22 Call<List<KoredakeTaiso>> call = koreservice.getKoredakeTaiso(lineData.getString("user_id", "No Data")); 23 Log.e("service", koreservice.toString()); 24 Log.e("lineData", lineData.toString()); 25 26 //Log.e("getBiposi", service.return); 27 28 29 call.enqueue(new Callback<List<KoredakeTaiso>>() { 30 @Override 31 public void onResponse(Call<List<KoredakeTaiso>> call, Response<List<KoredakeTaiso>> response) { 32 Log.e("onResponse", response.toString()); 33 Log.e("onResponse", call.toString()); 34 35 List<KoredakeTaiso> koredake = response.body(); 36 Log.e("response", koredake.toString()); 37 38 39 ArrayAdapter<String> adapter = new ArrayAdapter<>(Koredake.this, R.layout.biposi_list, R.id.biposiRow_text); 40 //Log.e("ArrayAdapter", adapter.toString()); 41 42 ArrayList<String> dateList = new ArrayList<>(); 43 ArrayList<String> dateList2 = new ArrayList<>(); 44 KoredakeFormated koreF = new KoredakeFormated(); 45 46 47 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 48 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy'年'MM'月'dd'日'", Locale.ENGLISH); 49 50 51 Date date = new Date(); 52 53 54 for (KoredakeTaiso k : koredake) { 55 56 try { 57 //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 58 //Log.e("SDF", sdf.toString()); 59 60 //Date date = sdf.parse(k.getExerciseDate().toString()); 61 date = sdf.parse(k.getExerciseDate().toString()); 62 System.out.println(date.toString()); 63 Log.e("Parseできてる??", date.toString()); 64 65 /* 66 Arrays.sort(koredake, new Comparator<KoredakeTaiso>() { 67 public int compare(KoredakeTaiso date1, KoredakeTaiso date2) { 68 return date1.date - date2.getExerciseDate(); 69 } 70 }); 71 */ 72 73 String str = new SimpleDateFormat("yyyy'年'MM'月'dd'日'").format(date); 74 System.out.println("String型 = " + str); 75 Log.e("変更できてるー??", str.toString()); 76 77 78 dateList.add(str); 79 Log.e("KoredakeDateListできてる??", dateList.toString()); 80 81 /* 82 StringBuilder builder = new StringBuilder(); 83 builder.append(str); 84 adapter.add(builder.toString()); 85 */ 86 87 } catch (ParseException e) { 88 e.printStackTrace(); 89 Log.e("ParseExceptionKoredake", e.toString()); 90 } 91 } 92 93 Collections.sort(dateList, Collections.reverseOrder()); 94 Log.e("Collections koredake", dateList.toString()); 95 96 97 for(String s : dateList) { 98 99 try{ 100 date = sdf2.parse(s); 101 System.out.println(date.toString()); 102 Log.e("Parseその2", date.toString()); 103 104 String str2 = new SimpleDateFormat("yyyy'年'MM'月'd'日'").format(date); 105 Log.e("変更その2", str2.toString()); 106 107 //koreF.setKoreFmt(str2); 108 //Log.e("KoredakeF??", koreF.toString()); 109 110 dateList2.add(str2); 111 112 } catch (ParseException e) { 113 e.printStackTrace(); 114 Log.e("ParseExceptionKoredake2", e.toString()); 115 } 116 } 117 118 koreF.setKoreFmt(dateList2); 119 Log.e("KoredakeF??", koreF.toString()); 120 121 122 123 for (String s : dateList2) { 124 String string = s; 125 Log.e("string", string); 126 adapter.add(string); 127 //Log.e("Adapterできてるーーー??", adapter.toString()); 128 } 129 130 131 KoredakeView.setAdapter(adapter); 132 } 133 134 135 @Override 136 public void onFailure(Call<List<KoredakeTaiso>> call, Throwable t) { 137 Log.e("onFailure", call.toString()); 138 Log.e("onFailure", t.toString()); 139 } 140 });
②call.execute(同期)で動かしたいが、読み飛ばされているようです。
Java
1User user; 2 user = new User(); 3 4 SharedPreferences lineData = getSharedPreferences("DataSave", Context.MODE_PRIVATE); 5 String level = lineData.getString("user_id", "No Data"); 6 Log.e("SharedUser", level); 7 8 9 user.lineUserId = level; 10 Log.e("StoreOk", user.lineUserId); 11 12 13 Retrofit retrofit = new Retrofit.Builder() 14 .baseUrl("https://travossbot.herokuapp.com") 15 .addConverterFactory(GsonConverterFactory.create()) 16 .build(); 17 Koredakeinterface koreservice = retrofit.create(Koredakeinterface.class); 18 19 20 Call<List<KoredakeTaiso>> call = koreservice.getKoredakeTaiso(lineData.getString("user_id", "No Data")); 21 Log.e("service", koreservice.toString()); 22 Log.e("lineData", lineData.toString()); 23 24 try { 25 Response<List<KoredakeTaiso>> response = call.execute(); 26 List<KoredakeTaiso> koredake = response.body(); 27 28 ArrayList<String> dateList = new ArrayList<>(); 29 30 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 31 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy'年'MM'月'dd'日'", Locale.ENGLISH); 32 33 34 Date date = new Date(); 35 36 37 for (KoredakeTaiso k : koredake) { 38 39 try { 40 date = sdf.parse(k.getExerciseDate().toString()); 41 System.out.println(date.toString()); 42 Log.e("Parseできてる??", date.toString()); 43 44 45 String str = new SimpleDateFormat("yyyy'年'MM'月'dd'日'").format(date); 46 //Log.e("変更できてるー??", str.toString()); 47 48 49 dateList.add(str); 50 //Log.e("KoredakeDateListできてる??", dateList.toString()); 51 52 } catch (ParseException e) { 53 e.printStackTrace(); 54 //Log.e("ParseExceptionKoredake", e.toString()); 55 } 56 } 57 58 Collections.sort(dateList, Collections.reverseOrder()); 59 Log.e("Collections koredake", dateList.toString()); 60 61 62 for(String s : dateList) { 63 64 try{ 65 date = sdf2.parse(s); 66 System.out.println(date.toString()); 67 Log.e("Parseその2", date.toString()); 68 69 String str2 = new SimpleDateFormat("yyyy'年'M'月'd'日'").format(date); 70 //Log.e("変更その2", str2.toString()); 71 72 dateList2.add(str2); 73 Log.e("KoredakeDateList2??", dateList2.toString()); 74 75 76 } catch (ParseException e) { 77 e.printStackTrace(); 78 Log.e("ParseExceptionKoredake2", e.toString()); 79 } 80 } 81 82 //koreF.setKoreFmt(dateList2); 83 //Log.e("KoredakeF??", koreF.toString()); 84 85 86 } catch(Exception e) { 87 88 }
気になる事があれば聞いてください。よろしくお願い申し上げます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。