Java/Java Android
[Android] 난수 생성기 만들기
기록자_Recordian
2025. 4. 28. 18:06
728x90
반응형
이전 내용
[Android] 안드로이드 위젯(widget)
이전 내용 [Android] Android Studio 다운 받기자바 안드로이드란? 자바(Java)는 안드로이드 애플리케이션 개발에 가장 널리 사용되는 프로그래밍 언어 중 하나이다. 자바를 사용하여 안드로이드 앱을
puppy-foot-it.tistory.com
난수 생성기 만들기
Q. 버튼을 누르면 임의의 수(난수)를 하나 생성해주는 기능을 구현하라.
[activity_main.xml]
사용자가 버튼을 클릭했을 때 랜덤 숫자를 생성하고 이를 TextView에 표시하는 기능을 한다. TextView는 현재 생성된 난수를 표시하기 위해 사용되며, Button은 사용자가 클릭함으로써 난수를 생성할 수 있는 인터랙티브한 요소이다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center">
<TextView
android:id="@+id/textViewRandomNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200dp"
android:text="난수:"
android:textSize="18sp" />
<Button
android:id="@+id/buttonGenerateRandom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="generateRandomNumber"
android:text="랜덤 생성" />
</LinearLayout>
◆ TextView
- android:id: @+id/textViewRandomNumber는 이 TextView에 대한 고유 식별자를 정의하고, 이후 코드에서 이 TextView를 참조할 때 사용된다.
- android:layout_width: wrap_content는 TextView의 너비가 내부 콘텐츠(텍스트)의 너비에 맞춰 조정되도록 설정한다.
- android:layout_height: wrap_content는 TextView의 높이가 내부 콘텐츠(텍스트)의 높이에 맞춰 조정되도록 설정한다.
- android:layout_marginTop: 200dp는 해당 TextView의 위쪽에 200dp만큼의 여백을 추가하여, 상단의 다른 요소와의 간격을 조정한다.
- android:text: "난수:"는 TextView에 표시되는 기본 텍스트이다.
- android:textSize: 18sp는 텍스트 크기를 18sp로 설정하며, 사용자의 설정에 따라 폰트 크기가 조정되도록 한다.
◆ Button
- android:id: @+id/buttonGenerateRandom는 이 Button에 대한 고유 식별자를 정의하며, 코드에서 버튼을 참조할 때 사용된다.
- android:layout_width: wrap_content는 Button의 너비가 내부 콘텐츠(버튼 텍스트)의 너비에 맞춰 조정되도록 설정.
- android:layout_height: wrap_content는 Button의 높이가 내부 콘텐츠(버튼 텍스트)의 높이에 맞춰 조정되도록 설정.
- android:onClick: generateRandomNumber는 사용자가 버튼을 클릭할 때 호출될 메서드의 이름. 이 메서드는 Java 코드에서 정의되어 있어야 하며, 랜덤 숫자를 생성하는 로직을 포함하게 된다.
- android:text: "랜덤 생성"은 버튼에 표시되는 텍스트.
[MainActivity.java]
랜덤 숫자를 생성하고 이를 사용자 인터페이스에 출력하는 기능을 수행한다.
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private TextView textViewRandomNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
textViewRandomNumber = findViewById(R.id.textViewRandomNumber);
}
public void generateRandomNumber(View view){
Random random = new Random();
int randomNumber = random.nextInt(100);
textViewRandomNumber.setText("난수: " + randomNumber);
}
}
- textViewRandomNumber: 액티비티 내에서 사용할 TextView 객체를 참조하기 위한 변수. 난수를 표시하는 데 사용.
- onCreate(): 액티비티가 처음 생성될 때 호출되는 메서드. 주로 초기화 로직 설정.
super.onCreate(savedInstanceState): 부모 클래스의 onCreate() 메서드를 호출하여 기본적으로 필요한 초기화 수행.
setContentView(R.layout.activity_main): activity_main.xml 레이아웃을 이 액티비티의 사용자 인터페이스로 설정. - findViewById(): XML 레이아웃 내의 TextView를 찾아 초기화. 이제 textViewRandomNumber 변수를 통해 이 TextView에 접근할 수 있다.
- generateRandomNumber(View view): 버튼 클릭 시 호출되는 메서드. View 객체는 클릭된 버튼을 나타낸다.
- Random random = new Random(): Random 객체를 생성하여 랜덤 숫자 생성.
- int randomNumber = random.nextInt(100): 0부터 99까지의 랜덤 정수 생성.
- textViewRandomNumber.setText("난수: " + randomNumber): 생성된 랜덤 숫자를 TextView에 설정하여 화면에 표시.
[결과 출력]
다음 내용
[Android] 회원정보 출력 기능 만들기
이전 내용 [Android] 난수 생성기 만들기이전 내용 [Android] 안드로이드 위젯(widget)이전 내용 [Android] Android Studio 다운 받기자바 안드로이드란? 자바(Java)는 안드로이드 애플리케이션 개발에 가장 널
puppy-foot-it.tistory.com
728x90
반응형