반응형
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
설명
- Toast처럼 하단에 메시지를 보여주는 역할을 수행한다.
- Android 22.2 버전에서 추가됨
- Android 30 버전부터 Custom Toast는 사용할 수 없어 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>
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 |