베하
비티시 보이즈 입니다!
오늘은 저번 "안드로이드 앱개발(1)" 글에 이어서 동적으로 실행되는 안드로이드
앱을 만들어 보겠습니다!
이번글에서 만들어 볼 앱은 로또 번호 생성 앱 입니다!
우선 안드로이드 설치 및 환경 설정은 전 글을 참고해주세요!
우선 글자들이 선형으로 배치 될 수 있도록
LinearLayout 을 사용하고
로또 번호들이 세로로 나올 수 있도록 orientation 옵션에 vertical 값을 넣고
그리고 로또 번호들이 화면 중앙에 올 수 있도록 gravity 옵션에 center값을 넣어 Layout을 구성하겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:gravity="center"
>
</LinearLayout>
위의 Layout을 구성하면 글자들이 화면 중앙에 세로로 나오게 됩니다~
로또 번호 6개가 출력된다면 아래 사진처럼 나오게 됩니다.
그리고 6개의 Textview와 Button 컴포넌트를 만들어 보겠습니다.
TextView에는 로또 번호가 출력 되게 될 것이며 TextView를 제어 하기위해 id값을 추가 하겠습니다.
Button은 로또 번호를 생성하는 버튼이며 Button에도 id 값을 추가 하겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:gravity="center"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 1"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 2"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_2"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 3"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_3"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 4"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_4"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 5"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_5"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:padding="10dp"
android:text="로또번호 6"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold"
android:id="@+id/tv_num_6"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50px"
android:textSize="20dp"
android:text="번호 생성"
android:id="@+id/create_btn"
></Button>
</LinearLayout>
이렇게 되면 activity_main.xml 파일의 코드가 완성 됐으며 화면에 보일 LayOut이 완성 되었습니다.
그리고 실제 동작 코드를 작성하기 위해 app/java/{패키지명}/MainActivity.java
파일로 이동하여 코드를 작성 해 보겠습니다.
우선 랜덤한 숫자를 생성하는 함수를 만들어 보겠습니다.
//1 ~ 45 랜덤한 숫자 생성 함수
public int CreateNumber(int index) {
Random random = new Random();
int res_num = random.nextInt(45)+1;
while(FindNum(res_num))
{
res_num = random.nextInt(45)+1;
}
save_num[index] = res_num;
return res_num;
}
그리고 중복 숫자를 검사하는 함수를 만들어 보겠습니다.
//중복 검사를 위해 숫자들을 저장할 배열
Integer[] save_num = {0,0,0,0,0,0};
//중복 숫자 검사 함수
public boolean FindNum(int num){
//중복 숫자가 있을 경우 true 반환
for (int target: save_num) {
if(num == target) return true;
}
return false;
}
그럼 랜덤한 숫자를 생성하여 TextView컴포넌트의 id값을 이용하여 setText함수를 사용해
TextView에 랜덤한 로또번호를 출력하는 앱의 전체 코드입니다~
package com.example.btcapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
//중복 검사를 위해 숫자들을 저장할 배열
Integer[] save_num = {0,0,0,0,0,0};
//중복 숫자 검사 함수
public boolean FindNum(int num){
//중복 숫자가 있을 경우 true 반환
for (int target: save_num) {
if(num == target) return true;
}
return false;
}
//1 ~ 45 랜덤한 숫자 생성 함수
public int CreateNumber(int index) {
Random random = new Random();
int res_num = random.nextInt(45)+1;
while(FindNum(res_num))
{
res_num = random.nextInt(45)+1;
}
save_num[index] = res_num;
return res_num;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Lotto 번호가 출력 될 TextView
//Layout에서 설정한 id 값을 변수에 저장
final TextView lt_num_1 = (TextView)findViewById(R.id.tv_num_1);
final TextView lt_num_2 = (TextView)findViewById(R.id.tv_num_2);
final TextView lt_num_3 = (TextView)findViewById(R.id.tv_num_3);
final TextView lt_num_4 = (TextView)findViewById(R.id.tv_num_4);
final TextView lt_num_5 = (TextView)findViewById(R.id.tv_num_5);
final TextView lt_num_6 = (TextView)findViewById(R.id.tv_num_6);
//로또 번호 생성을 위한 버튼
final Button create_btn = (Button) findViewById(R.id.create_btn);
TextView[] textViews = new TextView[]{lt_num_1, lt_num_2,lt_num_3,lt_num_4,lt_num_5,lt_num_6};
//Button 컴포 넌트의 클릭 리스너 함수
//클릭시 6개의 로또 번호 생성
create_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for(int i=0;i<6;i++){
textViews[i].setText(Integer.toString(CreateNumber(i)));
}
}
});
}
}
코드를 다 작성 하였다면 안드로이드 스튜디오의 오른쪽 상단에 초록색 실행 버튼을 눌러주세요!
앱을 실행 시킨 초기화면 입니다~
그리고 번호생성 버튼을 누른 화면입니다~
그러면 여기까지 안드로이드 앱 프로그래밍에 대해 맛보기로 알아봤습니다!
'Programming' 카테고리의 다른 글
[Java] 싱글톤 패턴 구현하는 방법 (0) | 2023.08.03 |
---|---|
React란? (0) | 2023.07.24 |
[Vue] Vue Router (0) | 2023.07.09 |
[C#] .NET Winform Event 만들기 예제 (0) | 2023.07.07 |
안드로이드 앱개발(1) (0) | 2023.07.06 |
댓글