From 2ad164b72166efe4a9f50f0a6ccc687834f99ff6 Mon Sep 17 00:00:00 2001 From: nemukemo Date: Wed, 19 Jun 2024 16:10:59 +0900 Subject: [PATCH] =?UTF-8?q?SetUpActivity=E3=81=A7=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=81=AE=E4=BF=9D=E5=AD=98=E3=81=8A=E3=82=88=E3=81=B3=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E3=81=99=E3=82=8B=E5=87=A6=E7=90=86=E3=81=AE=E5=AE=9F?= =?UTF-8?q?=E8=A3=85=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/oplogy/FirestoreReception.java | 2 +- .../java/com/example/oplogy/MainActivity.java | 2 +- .../com/example/oplogy/SetUpActivity.java | 48 +++++++++++++++++++ .../com/example/oplogy/SetUpTableDao.java | 7 +++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/oplogy/FirestoreReception.java b/app/src/main/java/com/example/oplogy/FirestoreReception.java index 835ee53..8713d5c 100644 --- a/app/src/main/java/com/example/oplogy/FirestoreReception.java +++ b/app/src/main/java/com/example/oplogy/FirestoreReception.java @@ -27,7 +27,7 @@ public class FirestoreReception { public ListmyDataList = new ArrayList<>(); //ClassIdを引数にデータの作成を行う - public void getDocumentsByClassId(int classId, MainActivity context) { + public void getDocumentsByClassId(int classId) { CollectionReference collectionRef = db.collection("QuestionnaireForms"); // classIdが引数のものを取得する diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 3506cf6..1ed5e10 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -65,7 +65,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe db = FirebaseFirestore.getInstance(); firestoreReception = new FirestoreReception(); - firestoreReception.getDocumentsByClassId(100,MainActivity.this); + firestoreReception.getDocumentsByClassId(100); diff --git a/app/src/main/java/com/example/oplogy/SetUpActivity.java b/app/src/main/java/com/example/oplogy/SetUpActivity.java index 98b85b7..3ce761b 100644 --- a/app/src/main/java/com/example/oplogy/SetUpActivity.java +++ b/app/src/main/java/com/example/oplogy/SetUpActivity.java @@ -12,12 +12,16 @@ import android.widget.Button; import android.widget.RadioButton; import android.widget.TextView; import android.widget.TimePicker; +import android.widget.Toast; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; +import androidx.room.Room; import java.util.Locale; import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class SetUpActivity extends FragmentActivity @@ -47,6 +51,9 @@ public class SetUpActivity extends FragmentActivity Button startTimeSetButton; Button endTimeSetButton; + + + @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { @@ -108,6 +115,47 @@ public class SetUpActivity extends FragmentActivity Log.d(TAG, "Total Student" + totalStudent); Log.d(TAG, "onClick: できてるよ"); + + // データベースへの登録処理 + ExecutorService executor = Executors.newSingleThreadExecutor(); + + executor.execute(() -> { + //roomのインスタンスを作成 + AppDatabase db = Room.databaseBuilder( + getApplicationContext(), + AppDatabase.class, + "SetUpTable" + ).build(); + SetUpTableDao setUpTableDao = db.setUpTableDao(); + // Roomの操作を行う + SetUpTable setUpTable = new SetUpTable( + teacherName, + startPoint, + startTime, + endTime, + intervalTime, + startBreakTime, + endBreakTime, + totalStudent + ); + + // 同じ名前のエントリが存在するかどうかを確認 + SetUpTable existingSetUpTable = setUpTableDao.findByName(teacherName); + if (existingSetUpTable != null) { + // エントリが存在する場合は、そのエントリを更新 + setUpTable.setId(existingSetUpTable.getId()); // 既存のIDを設定 + setUpTableDao.update(setUpTable); + + runOnUiThread(() -> Toast.makeText(SetUpActivity.this, "更新しました", Toast.LENGTH_SHORT).show()); + } else { + // エントリが存在しない場合は、新しいエントリを挿入 + setUpTableDao.insertAll(setUpTable); + runOnUiThread(() -> Toast.makeText(SetUpActivity.this, "登録しました", Toast.LENGTH_SHORT).show()); + } + + }); + + }); startTimeSetButton.setOnClickListener(v -> { isStartTimeSelected = 1; //ボタンの判別 diff --git a/app/src/main/java/com/example/oplogy/SetUpTableDao.java b/app/src/main/java/com/example/oplogy/SetUpTableDao.java index e92a008..0ebc1df 100644 --- a/app/src/main/java/com/example/oplogy/SetUpTableDao.java +++ b/app/src/main/java/com/example/oplogy/SetUpTableDao.java @@ -2,6 +2,7 @@ package com.example.oplogy; import androidx.room.Dao; import androidx.room.Insert; import androidx.room.Query; +import androidx.room.Update; import java.util.List; @@ -9,4 +10,10 @@ import java.util.List; public interface SetUpTableDao { @Insert void insertAll(SetUpTable... setUpTables); + //更新処理 + @Update + void update(SetUpTable setUpTable); + //名前が一致しているかの確認 + @Query("SELECT * FROM SetUpTable WHERE teacherName = :name LIMIT 1") + SetUpTable findByName(String name); }