前提・実現したいこと
事情があり、既存モバイルアプリのバグ修正を行っているのですが、LiveDataの動きで、どうしても理解できない箇所があるため、質問させてください。
質問したいこと
処理を行いたい順序で格納したArrayList<String>の変数を"eventNames"があり、格納順で以下の処理を行いたいのですが、ランダムに処理が実行されています。
格納順に処理を行うにはどうすれば良いのかご教授して頂きたです。
Java
1todaysHistoryViewModel.EventsForDate(titleText_initial).observe(this, eventNames -> { 2 if(eventNames.size()==0){ 3 if(totalItemNormal+totalItemAerobic ==0){ 4 fullbody.startAnimation(fadeInHumanPic); 5 full_body_alternative.setVisibility(View.GONE); 6 checkGraphAvailable(); 7 } 8 } 9 else{ 10 totalItemNormal = eventNames.size(); 11 for (int i = 0; i < eventNames.size(); i++) { 12 String eventName = eventNames.get(i); 13 todaysHistoryViewModel.EventForNameAndDate(titleText_initial, p).observe(DayHistoryActivity.this, eventLogs -> { 14 //System.out.println(eventLogs.size()+"///////////////////////"); 15 16 }); 17 } 18 } 19 });
TodaysHistoryViewModel
1public class TodaysHistoryViewModel extends AndroidViewModel { 2 private final DataRepository mRepository; 3 public TodaysHistoryViewModel(@NonNull Application application) { 4 super(application); 5 mRepository = ((kmemo) application).getRepository(); 6 allAerobic = mRepository.selectAllAerobatic(); 7 } 8 9 public LiveData<List<String>> EventsForDate(String date){ return mRepository.EventsForDates(date); } 10 public LiveData<List<EventLog>> EventForNameAndDate(String date, String name){ return mRepository.EventForNameDate(date,name); } 11 public LiveData<List<AerobicTable>> EventForNameAndDateAero(String date,String name){ return mRepository.AeroEventForNameAndDate(date,name); } 12 public LiveData<List<String>> EventsForDateAero(String date){ return mRepository.EventsForDatesAero(date); } 13 14 public void deleteLog(String name, int pos, String date) { 15 mRepository.deleteLog(name,pos,date); 16 } 17}
あなたの回答
tips
プレビュー