본문 바로가기
Kotlin

19. 코틀린 버튼 이벤트

by NaHyungMin 2020. 4. 6.

class MainActivity : AppCompatActivity() {

 

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

 

//        val quizStart = findViewById<Button>(R.id.quiz_start);

        findViewById<Button>(R.id.quiz_start).setOnClickListener { view ->  onQuizStart(view) }

    }

 

    fun onQuizStart(view: View) : Unit {

        //퀴즈 데이터베이스에 데이터가 있으면 띄워준다.

        //데이터가 존재하지 않으면 없음으로 표시.

 

        val builder = AlertDialog.Builder(this@MainActivity)

        builder.setTitle("제목(kotlin)")

        builder.setMessage("내용(Kotlin)")

 

        builder.setPositiveButton(android.R.string.yes) { dialog, which ->

            Toast.makeText(applicationContext,

                android.R.string.yes, Toast.LENGTH_SHORT).show()

        }

 

        builder.setNegativeButton(android.R.string.no) { dialog, which ->

            Toast.makeText(applicationContext,

                android.R.string.no, Toast.LENGTH_SHORT).show()

        }

 

        builder.setNeutralButton("Maybe") { dialog, which ->

            Toast.makeText(applicationContext,

                "Maybe", Toast.LENGTH_SHORT).show()

        }

 

        builder.show()

    }

 

    fun onQuizCreate(view: View) : Unit {

        //퀴즈 데이터가 있으면 불러오고, 없으면 빈칸으로 표시.

 

        val builder = AlertDialog.Builder(ContextThemeWrapper(this@MainActivity, R.style.Theme_AppCompat_Light_Dialog))

        builder.setTitle("제목(kotlin)2")

        builder.setMessage("내용(Kotlin)2")

 

        builder.show();

    }

 

    fun onQuizCreate2(view : View) : Unit {

        var temp:String = "";

 

        when(view.id){

            R.id.quiz_start -> temp = "quiz_start";

            R.id.quiz_create -> temp = "quiz_create";

        }

    }

}

1. findViewById<Button>(R.id.quiz_start).setOnClickListener { view ->  onQuizStart(view) } 리스너 대기(이벤트)

2. onQuizCreate xml activity에서 접근, 매개변수는 view를 받아야 한다.

3. onQuizCreate2 xml activity에서 접근, 다수의 이벤트를 한번에 실행시켜, id로 판별

 

<?xml version="1.0" encoding="utf-8"?>

 

<LinearLayout

    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"

    android:orientation="vertical"

    android:gravity="center_vertical"

    android:layout_weight="1" >

 

    <Button

            android:id="@+id/quiz_start"

            android:layout_width="@dimen/button_width_size"

            android:layout_height="wrap_content"

            android:layout_gravity="center_horizontal"

            android:layout_marginBottom="10dp"

            android:textSize="@dimen/button_text_size"

            android:text="퀴즈 시작"

    />

 

    <Button

            android:id="@+id/quiz_create"

            android:layout_width="@dimen/button_width_size"

            android:layout_height="wrap_content"

            android:layout_gravity="center_horizontal"

            android:textSize="@dimen/button_text_size"

            android:text="퀴즈 만들기"

            android:onClick="onQuizCreate"

    />

 

</LinearLayout>

 

'Kotlin' 카테고리의 다른 글

21. 코틀린 화면전환2  (0) 2020.04.09
20. 코틀린 화면 전환  (0) 2020.04.06
코틀린 ext 오류  (0) 2020.04.01
코틀린 레이아웃/리소스 정보  (0) 2020.03.31
코틀린, Windows10 안드로이드 환경 설정  (0) 2020.03.23