반응형
    
    
    
  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 |