Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스프링부트
- 랜덤넘버
- button
- npm
- 코틀린
- Javscript
- JavaScript
- 오버라이딩
- RecyclerView
- fragment
- nodejs
- Hook
- TypeScript
- scrollview
- Linux
- 자바스크립트
- GoogleMaps
- JS
- array
- 리액트
- 구글맵스
- Java
- React
- TextView
- Kotlin
- stylesheet
- SpringBoot
- 랜덤번호
- Android
- 안드로이드
Archives
- Today
- Total
타닥타닥 개발자의 일상
kotlin 코틀린으로 회원 등록, 수정,추가, 삭제하는 안드로이드 프로그램 만들기 / sqlite로 화면전환시 데이터 전달 / sqllite+singleton 사용하기 본문
코딩 기록/Kotlin
kotlin 코틀린으로 회원 등록, 수정,추가, 삭제하는 안드로이드 프로그램 만들기 / sqlite로 화면전환시 데이터 전달 / sqllite+singleton 사용하기
NomadHaven 2022. 2. 12. 12:18
폴더 및 파일 구성
Member : Dto 역할을 하는 클래스
DBHelper : Dao 역할과 Singleton을 사용하는 클래스
나머지 Activity들 : 프로그램 사용시 필요한 모든 화면에 대한 Activity
새로만들기 > Activity > EmptyActivity로 각각의 Activity 생성.
Member.kt (Dto 역할)
package com.example.membermanagement
class Member(var seq:Int, var name:String, var age:Int, var address:String)
DBHelper.kt (Dao 역할과 Singleton을 사용하는 클래스)
package com.example.membermanagement
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
//Dao ==
class DBHelper(context:Context,filename:String):SQLiteOpenHelper(context,filename,null,1) {
// Singleton
companion object {
var dbhelper: DBHelper? = null
fun getInstance(context: Context, filename: String): DBHelper {
if (dbhelper == null) {
dbhelper = DBHelper(context, filename)
}
return dbhelper!!
}
}
override fun onCreate(db: SQLiteDatabase?) {
var sql: String = "CREATE TABLE IF NOT EXISTS MEMBER( " +
"SEQ INTEGER PRIMARY KEY AUTOINCREMENT, " +
"NAME STRING, " +
"AGE INTEGER, " +
"ADDRESS STRING ) "
db?.execSQL(sql)
}
override fun onUpgrade(db: SQLiteDatabase?, p1: Int, p2: Int) {
}
fun insert(vo: Member) {
var sql = " INSERT INTO MEMBER(name,age,address) " +
" VALUES('${vo.name}',${vo.age},'${vo.address}')"
var db = this.writableDatabase
db.execSQL(sql)
}
fun delete(name: String) {
var sql = " DELETE FROM MEMBER WHERE NAME = " +
" '${name}' "
var db = this.writableDatabase
db.execSQL(sql)
}
fun search(name: String): String {
var sql = " SELECT SEQ, NAME, AGE, ADDRESS FROM MEMBER WHERE NAME LIKE" +
"'${name}'"
var db = this.writableDatabase
var result = db.rawQuery(sql, null)
var str: String? = ""
while (result.moveToNext()) {
str += " 번호: " + result.getString(result.getColumnIndex("SEQ")) + " \n " +
"이름: " + result.getString(result.getColumnIndex("NAME")) + " \n " +
"나이: " + result.getString(result.getColumnIndex("AGE")) + " \n " +
"거주지: " + result.getString(result.getColumnIndex("ADDRESS"))
}
if(str == ""){
println("검색된 데이터가 없습니다.")
}
return str!!
}
fun revise(name: String, age: Int, address: String) {
var sql = " UPDATE MEMBER SET AGE = '${age}' WHERE NAME ='${name}';"
var db = this.writableDatabase
db.execSQL(sql)
var sql2 = " UPDATE MEMBER SET ADDRESS = '${address}' WHERE NAME ='${name}';"
var db2 = this.writableDatabase
db2.execSQL(sql2)
}
fun allMember(): String {
var sql = " SELECT * FROM MEMBER"
var db = this.writableDatabase
var result = db.rawQuery(sql, null)
var str: String? = ""
while (result.moveToNext()) {
str += "_______________________" +" \n " +" \n " +
" 번호: " + result.getString(result.getColumnIndex("SEQ")) + " \n " +
"이름: " + result.getString(result.getColumnIndex("NAME")) + " \n " +
"나이: " + result.getString(result.getColumnIndex("AGE")) + " \n " +
"거주지: " + result.getString(result.getColumnIndex("ADDRESS")) + " \n "
}
return str!!
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="145dp"
android:layout_height="49dp"
android:text="회원관리"
android:textSize="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.057"
app:layout_constraintHorizontal_bias="0.537"/>
<Button
android:id="@+id/addBtn"
android:text="회원추가"
android:layout_width="98dp"
android:layout_height="61dp"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintVertical_bias="0.271"/>
<Button
android:id="@+id/delBtn"
android:text="회원삭제"
android:layout_width="98dp"
android:layout_height="61dp"
app:layout_constraintTop_toBottomOf="@+id/addBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintVertical_bias="0.09"/>
<Button
android:id="@+id/searchBtn"
android:text="회원검색"
android:layout_width="98dp"
android:layout_height="61dp"
app:layout_constraintTop_toBottomOf="@+id/addBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintVertical_bias="0.323"/>
<Button
android:id="@+id/modBtn"
android:text="회원수정"
android:layout_width="98dp"
android:layout_height="61dp"
app:layout_constraintTop_toBottomOf="@+id/addBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintVertical_bias="0.546"/>
<Button
android:id="@+id/printBtn"
android:text="전체 회원조회"
android:layout_width="98dp"
android:layout_height="61dp"
app:layout_constraintTop_toBottomOf="@+id/addBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintVertical_bias="0.801"/>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
package com.example.membermanagement
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val addBtn = findViewById<Button>(R.id.addBtn)
val delBtn = findViewById<Button>(R.id.delBtn)
val searchBtn = findViewById<Button>(R.id.searchBtn)
val modBtn = findViewById<Button>(R.id.modBtn)
val printBtn = findViewById<Button>(R.id.printBtn)
addBtn.setOnClickListener {
val intent = Intent(this, RegisterActivity::class.java)
startActivity(intent)
}
delBtn.setOnClickListener {
val intent = Intent(this, DeleteActivity::class.java)
startActivity(intent)
}
searchBtn.setOnClickListener {
val intent = Intent(this, SearchActivity::class.java)
startActivity(intent)
}
modBtn.setOnClickListener {
val intent = Intent(this, ReviseActivity::class.java)
startActivity(intent)
}
printBtn.setOnClickListener {
val intent = Intent(this, AllmemberActivity::class.java)
startActivity(intent)
}
}
}
회원 추가 가능을 하는 RegisterActivity
activity_register.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchActivity">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTextname"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.155"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.597"/>
<TextView
android:id="@+id/modnameTxt"
android:text="이름"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.168"
app:layout_constraintVertical_bias="0.176"/>
<EditText
android:id="@+id/editTxtaddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.389"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.592"/>
<TextView
android:id="@+id/ageTxt"
android:text="나이"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.168"
app:layout_constraintVertical_bias="0.107"
app:layout_constraintTop_toBottomOf="@+id/modnameTxt"/>
<TextView
android:id="@+id/addressTxt"
android:text="주소"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.168"
app:layout_constraintVertical_bias="0.246"
app:layout_constraintTop_toBottomOf="@+id/modnameTxt"/>
<EditText
android:id="@+id/editTextage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.272"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.597"/>
<Button
android:id="@+id/findBtn_mod"
android:text="회원추가"
android:layout_width="120dp"
android:layout_height="73dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintVertical_bias="0.724"/>
</androidx.constraintlayout.widget.ConstraintLayout>
RegisterActivity.kt
DBHelper의 inster함수를 호출한다.
package com.example.membermanagement
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
class RegisterActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
val registerBtn = findViewById<Button>(R.id.findBtn_mod)
val editTextname = findViewById<EditText>(R.id.editTextname)
val editTextage = findViewById<EditText>(R.id.editTextage)
val editTxtaddress = findViewById<EditText>(R.id.editTxtaddress)
registerBtn.setOnClickListener {
//seq는 어차피 DB에서 추가
val mem = Member(0,
editTextname.text.toString().trim(),
editTextage.text.toString().toInt(),
editTxtaddress.text.toString().trim())
val dbHelper = DBHelper.getInstance(this,"member.db",)//.insert(mem)해도 됨
dbHelper.insert(mem)
}
}
}
DB를 삭제하는 DeleteActivity
activity_delete.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchActivity">
<TextView
android:id="@+id/modnameTxt"
android:text="검색할 이름"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.099"
app:layout_constraintVertical_bias="0.175"/>
<Button
android:id="@+id/findBtn_mod"
android:text="회원검색"
android:layout_width="120dp"
android:layout_height="73dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.216"
app:layout_constraintVertical_bias="0.726"/>
<Button
android:id="@+id/mod_Btn"
android:text="회원삭제"
android:layout_width="120dp"
android:layout_height="73dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.783"
app:layout_constraintVertical_bias="0.726"/>
<TextView
android:id="@+id/textViewinfo_mod"
android:textSize="20dp"
android:layout_width="285dp"
android:layout_height="261dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0.419"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTxtmodname"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.572"
app:layout_constraintVertical_bias="0.16"/>
</androidx.constraintlayout.widget.ConstraintLayout>
DeleteActivity.kt
DBHelper의 search함수와 delete함수를 불러온다.
package com.example.membermanagement
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class DeleteActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_delete)
val editTxtdelname = findViewById<EditText>(R.id.editTxtmodname)
val textViewinfo_del = findViewById<TextView>(R.id.textViewinfo_mod)
val findBtn_del = findViewById<Button>(R.id.findBtn_mod)
val deleteBtn = findViewById<Button>(R.id.mod_Btn)
findBtn_del.setOnClickListener {
val name = editTxtdelname.text.toString().trim()
val dbHelper = DBHelper.getInstance(this,"member.db",)
val result = dbHelper.search(name)
textViewinfo_del.text = result
}
deleteBtn.setOnClickListener {
val name = editTxtdelname.text.toString().trim()
val dbHelper = DBHelper.getInstance(this,"member.db",)
dbHelper.delete(name)
}
}
}
회원을 검색하는 SearchActivity
activity_search.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchActivity">
<TextView
android:id="@+id/searchnameTxt"
android:text="검색할 이름"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.099"
app:layout_constraintVertical_bias="0.175"/>
<Button
android:id="@+id/findBtn"
android:text="회원검색"
android:layout_width="120dp"
android:layout_height="73dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintVertical_bias="0.724"/>
<TextView
android:id="@+id/textViewinfo"
android:textSize="20dp"
android:layout_width="285dp"
android:layout_height="261dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0.419"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTxtname"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.572"
app:layout_constraintVertical_bias="0.16"/>
</androidx.constraintlayout.widget.ConstraintLayout>
SearchActivity.kt
DBHelper의 search함수 호출
package com.example.membermanagement
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class SearchActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search)
val editTxtname = findViewById<EditText>(R.id.editTxtname)
val textViewinfo = findViewById<TextView>(R.id.textViewinfo)
val findBtn = findViewById<Button>(R.id.findBtn)
findBtn.setOnClickListener {
val name = editTxtname.text.toString().trim()
val dbHelper = DBHelper.getInstance(this,"member.db",)
val result = dbHelper.search(name)
textViewinfo.text = result
}
}
}
회원정보를 수정하는 ReviseActivty
activity_revise.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchActivity">
<TextView
android:id="@+id/textViewinfo_mod"
android:textSize="20dp"
android:layout_width="323dp"
android:layout_height="146dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0.177"/>
<Button
android:id="@+id/findBtn_mod"
android:text="회원검색"
android:layout_width="64dp"
android:layout_height="60dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.907"
app:layout_constraintVertical_bias="0.049"/>
<EditText
android:layout_width="194dp"
android:layout_height="38dp"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTxtmodname"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintHorizontal_bias="0.516"
app:layout_constraintVertical_bias="0.067"/>
<TextView
android:id="@+id/modnameTxt"
android:text="수정할 이름"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.128"
app:layout_constraintVertical_bias="0.08"/>
<EditText
android:layout_width="257dp"
android:layout_height="43dp"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTextmodage"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.603"
app:layout_constraintVertical_bias="0.534"/>
<TextView
android:id="@+id/delnameTxt3"
android:text="나이"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.111"
app:layout_constraintVertical_bias="0.551"/>
<EditText
android:layout_width="257dp"
android:layout_height="43dp"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editTextmodAddress"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.603"
app:layout_constraintVertical_bias="0.654"/>
<Button
android:id="@+id/mod_Btn"
android:text="정보 수정"
android:layout_width="120dp"
android:layout_height="73dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.522"
app:layout_constraintVertical_bias="0.837"/>
<TextView
android:id="@+id/delnameTxt4"
android:text="주소"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.111"
app:layout_constraintVertical_bias="0.668"/>
</androidx.constraintlayout.widget.ConstraintLayout>
ReviseActivity.kt
package com.example.membermanagement
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
class ReviseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_revise)
val editTxtmodname = findViewById<EditText>(R.id.editTxtmodname)
val findBtn_mod = findViewById<Button>(R.id.findBtn_mod)
val textViewinfo_mod = findViewById<TextView>(R.id.textViewinfo_mod)
val editTextmodage = findViewById<EditText>(R.id.editTextmodage)
val editTextmodAddress = findViewById<EditText>(R.id.editTextmodAddress)
val mod_Btn = findViewById<Button>(R.id.mod_Btn)
findBtn_mod.setOnClickListener {
val name = editTxtmodname.text.toString().trim()
val dbHelper = DBHelper.getInstance(this,"member.db",)
val result = dbHelper.search(name)
textViewinfo_mod.text = result
}
mod_Btn.setOnClickListener {
val name = editTxtmodname.text.toString().trim()
val age = editTextmodage.text.toString().toInt()
val address = editTextmodAddress.text.toString().trim()
val dbHelper = DBHelper.getInstance(this,"member.db",)
dbHelper.revise(name,age,address)
val modInfo = dbHelper.search(name)
textViewinfo_mod.text = modInfo
}
}
}
activity_allmember.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AllmemberActivity">
<TextView
android:text="전체 회원 조회"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/allmemTxt"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintVertical_bias="0.066"/>
<TextView
android:layout_width="344dp"
android:layout_height="493dp"
android:id="@+id/allmemList"
android:scrollbars="vertical"
android:textSize="20dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
AllmemberActivity.kt
DBHelper의 alllMember 함수 호출
package com.example.membermanagement
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import android.widget.TextView
class AllmemberActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_allmember)
val dbHelper = DBHelper.getInstance(this,"member.db",)
val result = dbHelper.allMember()
val allmemList = findViewById<TextView>(R.id.allmemList)
allmemList.movementMethod = ScrollingMovementMethod()
allmemList.text= result
}
}
실행화면
'코딩 기록 > Kotlin' 카테고리의 다른 글
Comments