본문 바로가기

Dead Code/DEPRECATED-KOTLIN

[코틀린코드연습장] 예전부터 궁금했던, 토스트 띄우기




매번 텍스트뷰를 만들어서, 값이 제대로 들어갔는지 귀찮아서, 엑셀VBA처럼 메시지 창이 없는지 궁금했다. 


Toast를 띄워서 확인하면 편하지 않을까?

그런데... 코드가 녹녹하지 않다.


아래는 btn1 버튼을 눌렀을 때, 뛰어나오는 토스트이다.

t1에 메시지를 입력하고, 노출되는 길이를 정해준다.

btn1.setOnClickListener { view ->
	var t1 = Toast.makeText(this,"토스트 메시지입니다.", Toast.LENGTH_SHORT)
	t1.show()        
}

변수에 String 값이 들어있다면, 불러들일 수 있다.

txt1.text = "토스트에 이 메시지가 나왔으면 좋겠다."        
btn2.setOnClickListener{ view ->            
var t2 = Toast.makeText(this, txt1.text , Toast.LENGTH_SHORT)            
t2.show()        
}


아..근데 변수 선언해야 해서 좀 불편한데...한줄로 쓸수 있나..? 변수 선언부에 .show()를 함께 써도 실행이 되긴하네...?

var t2 = Toast.makeText(this, txt1.text , Toast.LENGTH_SHORT).show()

btn3 에는 특정 txt 뷰에 '사람'이라는 글자를 들어가도록 리스너를 만들었다. 그리고 '사람'이 들어 왔을때, '사람맞네' 라는 토스트가 뜨게 해보자. 귀찮으니까. 그냥 if문으로 처리한다.

btn3.setOnClickListener { view ->            
	txt2.text = "사람"            
		if (txt2.text == "사람") {                
		Toast.makeText(this, "사람맞네", Toast.LENGTH_SHORT).show()            
		}  else {                
		Toast.makeText(this, "쓰레기네", Toast.LENGTH_SHORT).show()            
	}        
}


마지막으로 스피너를 하나 세팅하고, 안에 '사람', '괴물'을 넣어둔다. 그리고 선택할때마다, 그에 맞는 토스트를 뜨게 해보자. 세상..에서 제일 괴로운건 복습이지만, 예전 기억을 더듬어... 스피너를 만든다. data 변수에는 사람, 괴물가 들어있다... 치고, position을 기준으로 분기를 한다.

spinner.adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, data)        
var t2 = Toast.makeText(this, "사람맞네", Toast.LENGTH_SHORT)var t3 = Toast.makeText(this, "쓰레기네", Toast.LENGTH_SHORT)        
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {            
	override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {                
		when(position) {                    
			0 -> t2.show()                    
			1 -> t3.show()                
			}            
		}            
	override fun onNothingSelected(parent: AdapterView<*>?) {            
	}        
}


일단. 되니까 OK