본문 바로가기
안드로이드

[Android] Button

by 엘딘 2022. 3. 23.
버튼 클릭시 AlertDialog 표시
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


		// activity_main layout에서 Button과 EditText생성
        val button = findViewById<Button>(R.id.button)
        val edit = findViewById<EditText>(R.id.editText)

        button.setOnClickListener {

            AlertDialog.Builder(this@MainActivity)
                .setTitle("대화상자 제목")
                // EditText에서 입력받은 문자 출력
                .setMessage(edit.text)
                .setCancelable(false)
                .setNeutralButton("닫기", DialogInterface.OnClickListener{ _, _ ->
                }).show()

        }
    }
}

 

 

라디오 버튼
class MainActivity : AppCompatActivity() {

    val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // 1. binding 사용
       /*setContentView(binding.root)
	// setOnCheckedChangeListener 안을 group으로 묶어줌(_로 써도됨)
        binding.radioGroup.setOnCheckedChangeListener{ group, checkedId ->
            Log.d("RadioButton", "클릭되었습니다")
            when(checkedId){
                R.id.radio1 -> binding.textView.text = "사과가 선택되었습니다"
                R.id.radio2 -> binding.textView.text = "바나나가 선택되었습니다"
                R.id.radio3 -> binding.textView.text = "오렌지가 선택되었습니다"
            }
        }*/

	  // 2. binding 미사용
        setContentView(R.layout.activity_main)

        val radioGroup = findViewById<RadioGroup>(R.id.radioGroup)
        val textView = findViewById<TextView>(R.id.textView)

        radioGroup.setOnCheckedChangeListener{ group, checkedId ->
            Log.d("RadioButton", "클릭되었습니다")
            when(checkedId){
                R.id.radio1 -> textView.text = "사과가 선택되었습니다"
                R.id.radio2 -> textView.text = "바나나가 선택되었습니다"
                R.id.radio3 -> textView.text = "오렌지가 선택되었습니다"
            }
        }
    }
}

 

 

체크 박스
class MainActivity : AppCompatActivity() {

    val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }

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

        //첫번째 방법
/*      setContentView(binding.root)

        binding.checkBox.setOnCheckedChangeListener(checkedListener)*/

        val checkedListener by lazy {
            // CompoundButton: 버튼 접근가능
            CompoundButton.OnCheckedChangeListener { buttonView, isChecked ->
                val checkBox = findViewById<CheckBox>(R.id.checkBox)
                val textView = findViewById<TextView>(R.id.textView)

                // if(isChecked == true) == if(isChecked)
                if (isChecked) {
                    when (buttonView.id) {
                        R.id.checkBox -> {
                            textView.text = "체크됨"
                        }
                    }
                } else {
                    when (buttonView.id) {
                        R.id.checkBox -> {
                            textView.text = "체크 해제됨"
                        }
                    }
                }
            }
        }
        
        
        // 두번째 방법
	setContentView(R.layout.activity_main)

        val checkBox = findViewById<CheckBox>(R.id.checkBox)
        val textView = findViewById<TextView>(R.id.textView)

        checkBox.setOnCheckedChangeListener{_, isChecked ->
            if(isChecked) {
                textView.text = "체크됨"
            }else{
                textView.text = "체크 해제됨"
            }
        }
    }
        
        
        
        
        
    }

'안드로이드' 카테고리의 다른 글

[Android] image  (0) 2022.03.23
[Android] spinner  (0) 2022.03.23
[Android] Intent  (0) 2022.03.22
[Android] Fragment  (0) 2022.03.22
[Android] RecylerView  (0) 2022.03.21

댓글