프로그래밍/안드로이드

코틀린 spinner 사용

OneByteSir 2020. 12. 12. 12:11
class RegisterActivity : AppCompatActivity() {

    var customerGradeArray = arrayOf("일반고객","S등급고객","A등급고객","VIP고객")  //array.xml로 대신정의
    var custGrade=""   //고객등급을 넣을 변수
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_register)
        var adapter1=ArrayAdapter(this,android.R.layout.simple_spinner_item,customerGradeArray)  //어뎁터를 정한다
        spCustomerGrade.adapter=adapter1   //보라색에 밑줄은 get과 set이 동시에 되는 변수를 뜻함
        spCustomerGrade.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{  //object는 new대신 쓰임
            override fun onNothingSelected(p0: AdapterView<*>?) {
            }
            override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {//p2는 사용자가 선택한 익덱스
                custGrade=customerGradeArray[p2]   //이러면 값전달
            }
        }
        Log.d("aaaitem",custGrade)
        rButton1.setOnClickListener {
            var name = edName.text.toString()
            var sex=""
            if(rb1.isChecked) {  //라디오 버튼이 2개니까 rb1 본인이 체크되있으면 남 아니면 여
                sex = "남"
            } else {
                sex = "여"
            }
            var phone = edPhone.text.toString()
            var email = edEmail.text.toString()
            var city = edCity.text.toString()
            Log.d("aaabb",custGrade)
            var myHelper = MyDBHelper(this)
            var sqlDB = myHelper.writableDatabase
            var insertSql="insert into customerTBL(name, sex, phone, email, city, custGrade) values ('" + name + "' , '" + sex + "' , '"+ phone + "' , '"+ email + "' , '" + city + "' , '"+ custGrade + "' )"
            sqlDB.execSQL(insertSql)

            Toast.makeText(applicationContext,"insert ok " + name, Toast.LENGTH_SHORT).show()
            sqlDB.close()
        }
    }
}

스피너를 이용해서 값을 다루는 코드이다.

스피너관련코드에 주석을 보면 도움이 될것이다.