본문 바로가기
코딩

안드로이드 코틀린-Biz English(회사 영어), 영어 문자 나타내기 #3

by 젊투 2022. 2. 6.

안녕하세요 Onejhym입니다.

앞서 설명한 Biz English(회사 영어)앱의 Layout에 이은 내용입니다.

이번 글에서는 하나의 Textview에서 다수의 문구를 무작위로 나타내는 명령을 설명하겠습니다.

 

  1. 앱의 목적
  2. Android Studio 설치
  3. layout
  4. 다수의 텍스트를 하나의 TextView에 표현하기 (문장 다발)
  5. 텍스트 표현 (랜덤 표현)
  6. 타이머
  7. 클릭시 넘어가기 (클릭시 명령)
  8. 복사 + 붙여넣기
  9. 광고 설정 (테스트)
  10. 광고 설정 (실제)
  11. 앱 등록 (계정 생성)
  12. 앱 등록 (apk파일 생성)

 

Textview에 문구를 표현하는 방법은 다음과 같이 정말 쉽습니다.

예) Textview_1.text = "안녕" 

 

그러나 저는 문구 종류 (이전글에 설명함)에 따라 랜덤 문구를 표기하고자 했습니다.

이를 위해서는 먼저 종류 (의견*결정, 인사*동의*사과*격려, 문의*부탁)에 맞는 문구를 구축해야 합니다.

 

1. 인사*동의*사과*격려에 관한 영문 그룹 

다수의 문구를 MutableList 기능을 사용하여 하나의 테이블에 저장할 수 있습니다.

 

private val 변수이름 : MutableList<변수형> = mutableListOf("표기할 내용1", "표기할 내용2")

 

*mutable 뜻 = 변할 수 있는 

 

MainActivity 에서만 사용할 수 있는 변수 (private val) TList_GAAC는 String 변수형의 MutableList<String> 이며,

이 변수에는 mutableListof 괄호안의 문구를 갖고 있는 일종의 변수 테이블 (array)라고 이해하면 되겠습니다.

 

\n (역슬래쉬 n)은 문구 표현시 한칸 띄기의 기능을 갖고 있습니다.

문구의 내용은 "로 시작하여 "로 끝내고 다은 문구가 있는 경우 이전 문구 끝에 ,를 입력하면 됩니다.

한 화면에 시작과 끝 ( ) 를 나타내기 위해 mutableListOf의 원본 내용을 줄였습니다.

의견과 동의 (OPDC) 종류의 문구로 동일한 방식으로 변수를 생성 그리고 테이블을 생성합니다.

 

동일한 방식으로 질의 및 부탁(QSRT)도 생성합니다.

 

------------------------------------

문구를 나타낼 테이블을 생성한 다음에는 문구 종류(의견*결정 // 인사*동의*사과*격려 // 문의*부탁)를 선택하면

그 테이블에 저장된 내용이 나오도록 설정해야 합니다.

 

이 기능을 위해서 각 종류를 선택하면 번호 (0 ~2)를 printTexts() function에 입력하도록 설정했습니다. 

 '의견,결정'의 Textview (id: tview_OPDC) 를 선택하면 0

 '인사,동의,사과,격려'의 Textview (id: tview_GAAC) 를 선택하면 1

 '문의,부탁'의 Textview (id: tview_QSRT) 를 선택하면 2

해당 기능은 override fun onCreate( ) 안에서 작성합니다.

 

------------------------------

이제 Text를 화면에 나타내는 명령을 알아볼 차례입니다.

앞서 말했듯이 TextView에 문구를 나타내는 방법은 다음과 같이 간단합니다.

예) Textview_1.text = "안녕" 

 

그런데 저희는 문구 테이블에서 무작위로 나타내야 하기 때문에 다음의 명령을 사용해야 합니다.

 

설명을 하면 다음과 같습니다.

 

val randomGAAC : Int = (0 until (TList_GAAC.size)).random()

 

randomGAAC 라는 INT형 변수를 생성합니다. 이 변수는 0부터, 앞서 만든 mutablelist인 TList_GAAC에 내용만큼 (TList_GAAC.size) 까지 수중 램덤으로 선택하는 내용입니다.

 

이제 랜덤 문구가 선정 되었으니 이를 Textview_1의 문구(Text)로 할당해줘야 합니다.

초기 printTexts (int : Int) function에서 정수(Integer)를 입력으로 받게 되어 있는데 여기서 입력받은 정수 (0 ~ 2)가

int라는 변수의 값이 됩니다.

 

조건문의 일종인 When을 사용하여 입력받은 변수 int의 값이 0일경우 Textview_1의 text는 TList_GAAC[randomGAAC] 의 문구가 되도록 합니다.

예)

When (int) {

    0 -> Textview_1.text = TList_GAAC[randomGAAC]

}

 

여기서 randomGAAC는 앞에서 선택한 랜덤 문구의 번호를 의미합니다.

즉, TList_GAAC가 갖고 있는 다수의 문구중 랜덤 번호를 선택, 그 순서에 할당된 문구를 Textview_1.text로 표기하라라는 내용입니다.

 

이상으로 다수의 문구를 테이블에 저장하고 이중에 있는 랜덤 문구를 Textview에 표기하는 방법에 대해 알아 보았습니다.

다음은 타이머에 대해 알아보도록 하겠습니다.

감사합니다

Onejhym

 

 

댓글