728x90
안녕하세요.
오늘은 안드로이드에서 줄바꿈이 적용된 긴 글을 텍스트뷰에 위치시켜야 할 때 사용할 수 있는 방법에 대해 알아보겠습니다.
1. 필요한 텍스트 파일을 만들어서 assets 폴더에 넣어줍니다.
* 만약 assets 폴더가 없다면 [app 우클릭] -> [New] -> [Forder] -> [Asset Folder]를 만드시면 됩니다.
2. 아래와 같은 메서드를 만들어줍니다.
fun getAssetsTextString(mContext: Context, fileName: String): String{
val termsString = StringBuilder()
val reader: BufferedReader
try {
reader = BufferedReader(
InputStreamReader(mContext.resources.assets.open("$fileName.txt"))
)
var str: String?
while (reader.readLine().also { str = it } != null) {
termsString.append(str)
termsString.append('\n') //줄 변경
}
reader.close()
return termsString.toString()
} catch (e: IOException) {
e.printStackTrace()
}
return "fail"
}
3. 필요한 곳에서 호출해서 뷰에 넣어줍니다.
val tvTest = findViewById<TextView>(R.id.tv_test)
tvTest.text = getAssetsTextString(this,"test")
"test"자리에는 사용할 파일의 이름을 넣어주면 됩니다.
4. 결과
줄바꿈이 잘 적용되어 뷰에 띄워진 걸 확인할 수 있습니다.
> 전체 코드 입니다.
- MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val tvTest = findViewById<TextView>(R.id.tv_test)
tvTest.text = getAssetsTextString(this,"test")
}
fun getAssetsTextString(mContext: Context, fileName: String): String{
val termsString = StringBuilder()
val reader: BufferedReader
try {
reader = BufferedReader(
InputStreamReader(mContext.resources.assets.open("$fileName.txt"))
)
var str: String?
while (reader.readLine().also { str = it } != null) {
termsString.append(str)
termsString.append('\n') //줄 변경
}
reader.close()
return termsString.toString()
} catch (e: IOException) {
e.printStackTrace()
}
return "fail"
}
}
- 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">
<TextView
android:id="@+id/tv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android] 안드로이드 연속 클릭 막기 (0) | 2022.07.22 |
---|---|
[Kotlin][Android] 파일 쓰고 불러오기 (0) | 2022.07.13 |
[kotlin][Android] Activity 한번에 종료하기 (0) | 2022.06.28 |
[Kotlin][Android] BottomSheetDialogFragment 구현해보기 (0) | 2022.06.22 |
[Kotlin][Android] 디바이스 전체 화면 길이 구하기 (0) | 2022.06.18 |