From cb421d3a3623913c3c066b6731f45f36af6f5059 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1A3P75F\\lee" Date: Thu, 18 Aug 2022 01:13:36 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=84=EC=A0=95=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EC=95=A1=ED=8B=B0=EB=B9=84=ED=8B=B0=20=EB=AA=A8=EB=91=90=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EC=88=98=EC=A0=95=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 4 + app/src/main/AndroidManifest.xml | 3 + .../java/com/qtagger/Activity/AccountAdd.java | 4 +- .../com/qtagger/Activity/AccountList.java | 124 ++++++- .../com/qtagger/Activity/AccountModify.java | 96 +++++ .../main/java/com/qtagger/MainActivity.java | 4 +- app/src/main/java/com/qtagger/test.java | 17 + .../main/res/layout/activity_account_list.xml | 20 +- .../res/layout/activity_account_modify.xml | 102 +++++ app/src/main/res/layout/activity_test.xml | 350 +----------------- 10 files changed, 359 insertions(+), 365 deletions(-) create mode 100644 app/src/main/java/com/qtagger/Activity/AccountModify.java create mode 100644 app/src/main/res/layout/activity_account_modify.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 1df1707..16d8ffd 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,6 +11,10 @@ + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f604b7e..1c300e6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,9 @@ android:supportsRtl="true" android:theme="@style/Theme.QTagger" tools:targetApi="31"> + diff --git a/app/src/main/java/com/qtagger/Activity/AccountAdd.java b/app/src/main/java/com/qtagger/Activity/AccountAdd.java index 95db71a..524315b 100644 --- a/app/src/main/java/com/qtagger/Activity/AccountAdd.java +++ b/app/src/main/java/com/qtagger/Activity/AccountAdd.java @@ -34,8 +34,8 @@ public class AccountAdd extends AppCompatActivity { @Override public void onClick(View v) { String acId = editAccountId.getText().toString(); - String acName = editAccountId.getText().toString(); - String acDapt = editAccountId.getText().toString(); + String acName = editAccountName.getText().toString(); + String acDapt = editAccountDapt.getText().toString(); if(acId.isEmpty() || acName.isEmpty() || acDapt.isEmpty()) { diff --git a/app/src/main/java/com/qtagger/Activity/AccountList.java b/app/src/main/java/com/qtagger/Activity/AccountList.java index aa36816..07b29d6 100644 --- a/app/src/main/java/com/qtagger/Activity/AccountList.java +++ b/app/src/main/java/com/qtagger/Activity/AccountList.java @@ -1,12 +1,22 @@ package com.qtagger.Activity; +import androidx.annotation.DrawableRes; import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.utils.widget.ImageFilterButton; import androidx.room.Room; +import android.content.Intent; +import android.graphics.Color; import android.os.Bundle; +import android.util.TypedValue; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TableLayout; import android.widget.TableRow; +import android.widget.TextView; import com.qtagger.Database.Account; import com.qtagger.Database.AppDatabase; @@ -15,30 +25,126 @@ import com.qtagger.R; import java.util.List; public class AccountList extends AppCompatActivity { -ScrollView scrollView; -TableLayout tableLayout; + ScrollView scrollView; + LinearLayout linearLayout; + AppDatabase db; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_account_list); scrollView = (ScrollView)findViewById(R.id.scrollview_AccountList); - tableLayout = (TableLayout)findViewById(R.id.table_Account); + linearLayout = (LinearLayout)findViewById(R.id.linearList); + db = Room.databaseBuilder(this,AppDatabase.class,"AccountDB").allowMainThreadQueries().build(); - //tableLayout.addView(); + findViewById(R.id.imageFilterButton_Back).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); - TableRow tableRow = new TableRow(this); - tableRow.setLayoutParams(new TableLayout.LayoutParams()); + } - - - AppDatabase db = Room.databaseBuilder(this,AppDatabase.class,"AccountDB").allowMainThreadQueries().build(); + @Override + protected void onStart() { + super.onStart(); + linearLayout.removeAllViewsInLayout(); //초기 데이터 세팅 List accountList = db.accountDao().getAll(); for (Account ac: accountList) { //계정 개수만큼 추가 + addAccountView(ac); } + + } + + private void addAccountView(Account account) + { + TableLayout tableLayout = new TableLayout(this); + TableLayout.LayoutParams params = new TableLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,inttodp(150)); + params.setMargins(inttodp(40),inttodp(20),inttodp(40),0); + tableLayout.setLayoutParams(params); + tableLayout.setBackgroundResource(R.drawable.tablelayout_background); + + TableRow tableRow = new TableRow(this); + tableRow.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)); + + TextView textId = createTxt(account.getAccountId()); + ImageFilterButton btnModi = createBtn(R.drawable.edit_modify_icon_icons_com); + ImageFilterButton btnRemove = createBtn(R.drawable.trash_bin_icon_icons_com_67981); + tableRow.addView(textId); + tableRow.addView(btnModi); + tableRow.addView(btnRemove); + + TableRow tableRow2 = new TableRow(this); + TextView textName = createTxt(account.getAccountName()); + tableRow2.addView(textName); + + TableRow tableRow3 = new TableRow(this); + TextView textDapt = createTxt(account.getAccountDapt()); + tableRow3.addView(textDapt); + + tableLayout.addView(tableRow); + tableLayout.addView(tableRow2); + tableLayout.addView(tableRow3); + linearLayout.addView(tableLayout); + + + btnModi.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //수정 화면 + Intent intent = new Intent(getApplicationContext(), AccountModify.class); + intent.putExtra("Id",account.getId()); + startActivity(intent); + + } + }); + + btnRemove.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + db.accountDao().delete(account); + linearLayout.removeView(tableLayout); + } + }); + + } + + private TextView createTxt(String txt) + { + TextView textView = new TextView(this); + TableRow.LayoutParams textLayout = new TableRow.LayoutParams(inttodp(160),inttodp(40)); + textLayout.setMargins(inttodp(10),0,0,0); + textView.setLayoutParams(textLayout); + textView.setText(txt); + textView.setTextColor(Color.BLACK); + textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,24); + + return textView; + } + + + private ImageFilterButton createBtn(@DrawableRes int id) + { + ImageFilterButton button = new ImageFilterButton(this); + button.setBackgroundResource(id); + TableRow.LayoutParams btnLayout = new TableRow.LayoutParams(inttodp(32),inttodp(32)); + btnLayout.setMargins(inttodp(10),0,0,0); + button.setLayoutParams(btnLayout); + + return button; + } + + + private int inttodp(int dp) + { + return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dp,getResources().getDisplayMetrics()); + } } \ No newline at end of file diff --git a/app/src/main/java/com/qtagger/Activity/AccountModify.java b/app/src/main/java/com/qtagger/Activity/AccountModify.java new file mode 100644 index 0000000..b56d131 --- /dev/null +++ b/app/src/main/java/com/qtagger/Activity/AccountModify.java @@ -0,0 +1,96 @@ +package com.qtagger.Activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.qtagger.Database.Account; +import com.qtagger.Database.AppDatabase; +import com.qtagger.R; + +import org.w3c.dom.Text; + +import java.util.List; + +public class AccountModify extends AppCompatActivity { +TextView textAccountId; + EditText editAccountName, editAccountDapt; +Button btnModify; + Account findAccount = null; + AppDatabase db; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_account_modify); + textAccountId = (TextView)findViewById(R.id.textView_AccountId); + editAccountName = (EditText)findViewById(R.id.textView_AccountName); + editAccountDapt = (EditText)findViewById(R.id.textView_AccountDapt); + btnModify = (Button) findViewById(R.id.button_save); + + findViewById(R.id.imageFilterButton_Back).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + Intent intent = getIntent(); + int id = intent.getIntExtra("Id",-1); + + if(id != -1) + { + db = Room.databaseBuilder(this, AppDatabase.class, "AccountDB").allowMainThreadQueries().build(); + List accountList = db.accountDao().getAll(); + for (Account ac: accountList) { + if(ac.getId() == id) + { + findAccount = ac; + break; + } + } + + if(findAccount != null) + { + textAccountId.setText(findAccount.getAccountId()); + editAccountName.setText(findAccount.getAccountName()); + editAccountDapt.setText(findAccount.getAccountDapt()); + } + + } + + btnModify.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if(findAccount == null) + return; + + String acName = editAccountName.getText().toString(); + String acDapt = editAccountDapt.getText().toString(); + + if( acName.isEmpty() || acDapt.isEmpty()) + { + Toast.makeText(AccountModify.this, "모두 입력해주세요", Toast.LENGTH_SHORT).show(); + return; + } + findAccount.setAccountName(acName); + findAccount.setAccountDapt(acDapt); + + //DB에 저장 + db.accountDao().update(findAccount); + + Toast.makeText(AccountModify.this, "계정 수정 성공", Toast.LENGTH_SHORT).show(); + + finish(); + } + }); + + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/qtagger/MainActivity.java b/app/src/main/java/com/qtagger/MainActivity.java index bdb4785..a1738ff 100644 --- a/app/src/main/java/com/qtagger/MainActivity.java +++ b/app/src/main/java/com/qtagger/MainActivity.java @@ -31,8 +31,8 @@ public class MainActivity extends AppCompatActivity { mSpinner = findViewById(R.id.spinner_account); - Intent intent = new Intent(getApplicationContext(), test.class); - startActivity(intent); + //Intent intent = new Intent(getApplicationContext(), test.class); + //startActivity(intent); //로그인 findViewById(R.id.button_login).setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/qtagger/test.java b/app/src/main/java/com/qtagger/test.java index 5136165..3c2e218 100644 --- a/app/src/main/java/com/qtagger/test.java +++ b/app/src/main/java/com/qtagger/test.java @@ -1,8 +1,13 @@ package com.qtagger; import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; import android.os.Bundle; +import android.view.View; + +import com.qtagger.Database.Account; +import com.qtagger.Database.AppDatabase; public class test extends AppCompatActivity { @@ -11,6 +16,18 @@ public class test extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); + AppDatabase db = Room.databaseBuilder(this,AppDatabase.class,"AccountDB").allowMainThreadQueries().build(); + + findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + for (int i = 1;i<=10;i++) + { + String str = Integer.toString(i) ; + db.accountDao().insert(new Account(str,str,str)); + } + } + }); } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account_list.xml b/app/src/main/res/layout/activity_account_list.xml index dabbc2b..5ef9eba 100644 --- a/app/src/main/res/layout/activity_account_list.xml +++ b/app/src/main/res/layout/activity_account_list.xml @@ -8,6 +8,7 @@ tools:context=".Activity.AccountList"> - - + android:layout_height="match_parent" + android:orientation="vertical"> + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account_modify.xml b/app/src/main/res/layout/activity_account_modify.xml new file mode 100644 index 0000000..61cd839 --- /dev/null +++ b/app/src/main/res/layout/activity_account_modify.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + +