반응형

Toast

설명

  • 간단하게 메시지를 표시할 때 사용

기본 코드

res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="click" />

</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun onClick(view: View) {
        Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show()
    }
}

Custom Toast 코드

res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="click" />

</LinearLayout>
res/layout/custom_toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="" />

</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button = findViewById<Button>(R.id.button)

        button.setOnClickListener {
            val toastView = layoutInflater.inflate(R.layout.custom_toast, null)
            val toast = Toast(this)

            val textView = toastView.findViewById<TextView>(R.id.textView)
            textView.text = "Hello World"

            toast.view = toastView
            toast.setGravity(Gravity.CENTER, 0, 0)
            toast.show()
        }
    }
}

참고

Snackbar

설명

기본 코드

res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Show Snackbar" />
</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button = findViewById<Button>(R.id.button)

        button.setOnClickListener {
            val snackbar = Snackbar.make(it, "Hello World", Snackbar.LENGTH_SHORT)
            snackbar.setAction("확인") { snackbar.dismiss() }
            snackbar.show()
        }
    }
}

Custom Snackbar

res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Show Snackbar" />
</LinearLayout>
res/layout/snackbar_custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="50dp"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:background="@android:color/holo_blue_light"
            android:gravity="center"
            android:minWidth="190dp"
            android:paddingLeft="32dp"
            android:paddingRight="32dp"
            android:textColor="#000000"
            android:textSize="13sp" />
    </LinearLayout>

</LinearLayout>
MainActivity
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button = findViewById<Button>(R.id.button)

        button.setOnClickListener {
            val view = layoutInflater.inflate(R.layout.snackbar_custom, null)
            val textView = view.findViewById<TextView>(R.id.textView)

            textView.text = "Hello World!!"

            val snackbar = Snackbar.make(it, "", Snackbar.LENGTH_SHORT)
            val layout = snackbar.view as Snackbar.SnackbarLayout

            layout.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent))
            layout.addView(view)

            snackbar.show()
        }
    }
}
반응형

'Development > Android' 카테고리의 다른 글

[Android] ListView  (0) 2021.02.09
[Android] Layout  (0) 2021.02.09
[Android] View  (0) 2021.02.09
[Android] Intro  (0) 2021.02.09
[Android] adb를 활용해 무선으로 빌드하기  (0) 2018.08.19

+ Recent posts