반응형
Toast가 여러 줄로 출력되지 않는 경우는 디바이스의 화면 크기나 텍스트의 길이 때문이다. 그래서 여러 줄을 출력하기위해 TextView를 사용하는 MultiLine Toast를 만들어 보았다.
1. res/layout/multiline_toast.xml 파일 생성:
<!-- res/layout/multiline_toast.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:padding="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/multiline_toast_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="16sp"/>
</LinearLayout>
2. showMultiLineToast 함수 작성:
private fun showMultiLineToast(message: String) {
// 1. LayoutInflater를 사용해 multiline_toast 레이아웃을 불러옴
val inflater = layoutInflater
val layout = inflater.inflate(R.layout.multiline_toast, findViewById(R.id.multiline_toast_text))
// 2. multiline_toast 레이아웃의 TextView에 메시지를 설정
val textView: TextView = layout.findViewById(R.id.multiline_toast_text)
textView.text = message
// 3. Toast에 multi-line layout을 설정
with(Toast(applicationContext)) {
duration = Toast.LENGTH_LONG
view = layout
show()
}
}
3. 사용 예시:
val message = """
BLE 스캔 성공:
deviceName: ${result.deviceName}
RSSI: ${result.rssi}
data: ${result.data}
""".trimIndent()
showMultiLineToast(message) // Multi-line Toast로 출력
반응형
'개발 > Android' 카테고리의 다른 글
알림 메시지(Notification Message)와 데이터 메시지(Data Message) (0) | 2024.10.25 |
---|---|
<application> 및 <activity> 태그 속성과 하위 요소 (0) | 2024.10.25 |
NFC 권한설정 (1) | 2024.10.21 |
NdefFormatable 태그 (0) | 2024.10.21 |
NFC Tag 상세정보 출력 (2) | 2024.10.18 |