База данных sqLite Kotlin Android создаётся. Но данные в неё не добавляются

База данных создаётся но данные полученные с EditText(данные из Edit Text приходят корректно, проверял) не записываются в Базу данных.

Name Class:

import android.provider.BaseColumns

object CampDbNameClass : BaseColumns{

const val TABLE_NAME = "authorization"
const val COLUMN_NAME_LOGIN = "login"
const val COLUMN_NAME_PASSWORD = "password"
const val COLUMN_NAME_SQUAD = "squad"

const val DATABASE_VERSION = 1
const val DATABASE_NAME = "Camp.db"

const val CREATE_TABLE_AUTHORIZATION =
    "CREATE TABLE IF NOT EXISTS $TABLE_NAME (" +
            "${BaseColumns._ID}  INTEGER PRIMARY KEY AUTOINCREMENT ," +
            "$COLUMN_NAME_LOGIN  TEXT," +
            "$COLUMN_NAME_PASSWORD TEXT,"+
            "$COLUMN_NAME_SQUAD INTEGER)"

const val DELETE_TABLE = "DROP TABLE IF EXISTS $TABLE_NAME"

}

DataBaseHalper Class:

import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
import com.example.singupactivity.ui.main.DataBase.CampDbNameClass.CREATE_TABLE_AUTHORIZATION
import com.example.singupactivity.ui.main.DataBase.CampDbNameClass.DATABASE_NAME
import com.example.singupactivity.ui.main.DataBase.CampDbNameClass.DATABASE_VERSION
import com.example.singupactivity.ui.main.DataBase.CampDbNameClass.DELETE_TABLE
import com.example.singupactivity.ui.main.Fragment.LoginFragment

class CampDbHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, 
     DATABASE_VERSION) {

override fun onCreate(db: SQLiteDatabase?) {
    db?.execSQL(CREATE_TABLE_AUTHORIZATION)
}

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
    db?.execSQL(DELETE_TABLE)
    onCreate(db)
}


}

DataBaseManager Class:

import android.annotation.SuppressLint
import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import java.sql.SQLException


class CampDbManager(context: Context) {

private val campDbHelper = CampDbHelper(context)
private lateinit var db: SQLiteDatabase

fun openDb() {
    db = campDbHelper.writableDatabase
}

fun insertToTableAuthorization(login : String, password : String, squad : Int){
    val cv = ContentValues().apply {
        put(CampDbNameClass.COLUMN_NAME_LOGIN, login)
        put(CampDbNameClass.COLUMN_NAME_PASSWORD, password)
        put(CampDbNameClass.COLUMN_NAME_SQUAD, squad)
    }

    
        val rowID = db.insert(CampDbNameClass.TABLE_NAME, null, cv)
   

}

@SuppressLint("Range")
fun selectToTableAuthorization(const: String) : ArrayList<String> {
    openDb()
    val dataList = ArrayList<String>()
          while(cursor?.moveToNext()!!){
        val dataText = cursor.getString(cursor.getColumnIndex(const))
        dataList.add(dataText.toString())
    }
    cursor.close()
    return dataList
}

fun closeDb() {
    campDbHelper.close()
}

}

Activity из которого вызывается фрагмент, в котором происходит чтение и добавление в БД.

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager
import com.example.singupactivity.databinding.ActivityMainBinding
import com.google.android.material.tabs.TabLayout
import com.example.singupactivity.ui.main.Adapter.ViewPagerAdapter
import com.example.singupactivity.ui.main.DataBase.CampDbManager
import com.example.singupactivity.ui.main.Fragment.LoginFragment
import com.example.singupactivity.ui.main.Fragment.SignupFragment

class CampMainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding
private val campDbManager = CampDbManager(this)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
    campDbManager.openDb()

    setUpTabs()
}

private fun setUpTabs() {
    val viewPager: ViewPager = binding.viewPager
    val tabs: TabLayout = binding.tabs
    val adapter = ViewPagerAdapter(supportFragmentManager)
    adapter.addFragment(LoginFragment(), "Login")
    adapter.addFragment(SignupFragment(), "Signup")
    viewPager.adapter = adapter
    tabs.setupWithViewPager(viewPager)

}

override fun onDestroy() {
    campDbManager.closeDb()
    super.onDestroy()
}

}

И сам Fragment:

import android.app.AlertDialog
import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import com.example.singupactivity.ui.main.Activity.NavigationActivity
import com.example.singupactivity.R
import com.example.singupactivity.ui.main.DataBase.CampDbManager



class SignupFragment : Fragment() {


val campDbManager = activity?.let { CampDbManager(it) }

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View {

    val view: View = inflater.inflate(R.layout.fragment_signup, container, false)
    val btSignup = view.findViewById<Button>(R.id.btSignup)
    val etLogin = view.findViewById<EditText>(R.id.etLogin)
    val etPassword = view.findViewById<EditText>(R.id.etPassword)
    val etRepeatPassword = view.findViewById<EditText>(R.id.etRepeatPasswors)
    val etSquad = view.findViewById<EditText>(R.id.etSquad)
    var loginIsTrue = false
    var passwordIsTrue = false
    var squadIsTrue = false

    btSignup.setOnClickListener {

        

        if (etLogin.text.isNullOrEmpty() or
            etPassword.text.isNullOrEmpty() or
            etRepeatPassword.text.isNullOrEmpty() or
            etSquad.text.isNullOrEmpty()
        ) {

            alert(R.string.no_data_massage)

        } else {

            if (etPassword.text.toString() == etRepeatPassword.text.toString()) {

                val loginList =
                    campDbManager?.selectToTableAuthorization(etLogin.text.toString())
                if (loginList != null) {
                    for ((i, item) in loginList.withIndex()) {
                        if (loginList[i] == etLogin.text.toString()) {
                            loginIsTrue = true
                        }
                    }
                }
                val passwordList =
                    campDbManager?.selectToTableAuthorization(etPassword.text.toString())
                if (passwordList != null) {
                    for ((i, item) in passwordList.withIndex()) {
                        if (passwordList[i] == etPassword.text.toString()) {
                            passwordIsTrue = true
                        }
                    }
                }
                val squadList =
                    campDbManager?.selectToTableAuthorization(etSquad.text.toString())
                if (squadList != null) {
                    for ((i, item) in squadList.withIndex()) {
                        squadIsTrue = squadList[i] == etSquad.text.toString()
                    }
                }

                if (squadIsTrue and passwordIsTrue and loginIsTrue) {

                    alert(R.string.alredy_registered)

                } else {

                    campDbManager?.insertToTableAuthorization(
                        login = etLogin.text.toString(),
                        password = etPassword.text.toString(),
                        squad = etSquad.text.toString().toInt()
                    )

                    startActivity(Intent(activity, NavigationActivity::class.java))
                    Toast.makeText(
                        activity,
                        R.string.successful_authorization_and_login,
                        Toast.LENGTH_SHORT
                    ).show();


                }
            } else {

                alert(R.string.uncorrect_password)

            }
        }

    }
    return view
}

fun alert(massage: Int) {
    val builder = AlertDialog.Builder(activity!!)
    builder.setTitle(R.string.notification)
        .setMessage(massage)
        .setCancelable(false)
        .setPositiveButton(R.string.close, DialogInterface.OnClickListener { dialog, id ->
            dialog.dismiss()

        })

    val alert = builder.create()
    alert.show()
}

}


Ответы (0 шт):