From 52a03156a202ed9b6956b28bfb8ae7694740502f Mon Sep 17 00:00:00 2001 From: nemukemo Date: Tue, 16 Jul 2024 14:15:35 +0900 Subject: [PATCH] =?UTF-8?q?NowLoading=E4=BD=9C=E6=88=90=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/example/oplogy/MainActivity.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 425f7a5..197c8f2 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -1,5 +1,6 @@ package com.example.oplogy; +import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -322,6 +323,12 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } private void createRoute(ExecutorService executor) { + // ProgressDialogを作成 + ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); + progressDialog.setMessage("Loading..."); + progressDialog.setCancelable(false); + progressDialog.show(); + executor.execute(() -> { List myDataList = null; while (myDataList == null) { @@ -330,11 +337,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe Thread.sleep(3000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); + runOnUiThread(progressDialog::dismiss); // 進行状況ダイアログを閉じる return; } } - //final宣言することによって、スレッドセーフになる(ラムダ式内で使えるようにする) final List finalMyDataList = myDataList; CreateSchedule createSchedule = new CreateSchedule(MainActivity.this); String startPointLatLngString = createSchedule.receiveData(myDataList, getApplicationContext()); @@ -349,7 +356,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe } Boolean finalNotDuplicatesBoolean = notDuplicatesBoolean; Log.d("MainActivity", "重複判定" + String.valueOf(finalNotDuplicatesBoolean)); + runOnUiThread(() -> { + progressDialog.dismiss(); // 進行状況ダイアログを閉じる if (finalNotDuplicatesBoolean) { Log.d("MainActivity", "スケジュール作成成功"); saveMyDataList(finalMyDataList); @@ -357,7 +366,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe toRoot.putExtra("startPointLatLngString", startPointLatLngString); startActivity(toRoot); } else { - //保護者の重複による警告ダイアログ + // 保護者の重複による警告ダイアログ showErrorDialog(finalMyDataList); } }); @@ -367,6 +376,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe }); } + private void saveMyDataList(List myDataList) { // 共有プリファレンスのインスタンスを取得 SharedPreferences sharedPreferences = getSharedPreferences("MyDataList", MODE_PRIVATE); -- 2.45.1