본문 바로가기
앱 개발

[android] 토스트 Toast 메시지 출력 에러

by evekang 2022. 1. 6.

ImageView와 Button을 생성 후 버튼을 클릭했을 때 토스트 메시지 띄우기!!

 

* activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/iv_profile"
        android:layout_width="wrap_content"
        android:layout_height="300dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/pink" />

    <Button
        android:id="@+id/btn_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="-100dp"
        android:text="토스트메세지"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/iv_profile" />
</androidx.constraintlayout.widget.ConstraintLayout>

 

단순한 연습화면

 

* MainActivity.kt

package com.eve.imageviewkt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.eve.imageviewkt.databinding.ActivityMainBinding

private lateinit var binding: ActivityMainBinding

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

        binding = ActivityMainBinding.inflate(layoutInflater)
        var view = binding.root
        setContentView(view)

        binding.btnToast.setOnClickListener {
            Toast.makeText(this, "버튼이 클릭되었습니다.", Toast.LENGTH_LONG).show()
        }
    }
}

 

그런데 버튼을 눌러도 아무런 반응이 없다.

makeText()에 대한 객체에 show() 메서드를 호출했는데?

앱에 대한 알림을 설정에서 끄지도 않았는데?

 

혹시나 ImageView가 너무 커서 토스트 메시지가 뜨는데 가려지나싶어서 크기를 조절했는데도 보이지 않았다.

 

.

.

.

 

 

결국 해결함

My Device 클릭 후 Wipe Data 클릭하면 된다.

 

에뮬레이터가 실행되어 있는 경우에 아래와 같은 알람창이 뜬다.

 

에뮬레이터를 끄고 다시 Wipe Data를 클릭하면

user file들을 지우겠냐는 알림창이 뜬다. Yes를 눌러 지운다.

 

그리고 다시 에뮬레이터를 재실행하면 토스트 메시지가 정상적으로 표시된다.

 

반응형

댓글