본문 바로가기
안드로이드 자바

[JAVA][Android] 랜덤숫자 생성하고 공유하는 앱 만들기

by teamnova 2021. 11. 12.
728x90

안녕하세요! 이번 포스팅에서는 버튼을 눌러 새로운 랜덤숫자를 뽑고, 현재 랜덤숫자를 공유하는 앱을 만들어보겠습니다.

앱은 안드로이드 28 버전에서 구현 및 테스트되었습니다.

 

 

 

먼저, 레이아웃입니다.

activity_share.xml

<?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"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".ShareNumberActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="랜덤 숫자"
        android:textColor="@color/black"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/tv_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/black"
        android:paddingHorizontal="10dp"
        android:paddingVertical="5dp"
        android:text="1234"
        android:textColor="@color/white"
        android:textSize="20sp" />
    <Button
        android:id="@+id/btn_new_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="새로운 랜덤숫자 만들기" />
    <Button
        android:id="@+id/btn_share"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="공유하기" />
</LinearLayout>

 

 

 

Math.random() 메소드를 사용해서 랜덤숫자를 새로 만드는 기능을 만들어보겠습니다.

int number = (int) (Math.random() * 10000);
tvNumber.setText(String.valueOf(number));

 

 

메세지를 공유하는 share() 메소드를 만들어보겠습니다.

스틱코드를 통해 빠르게 코드를 입력할 수 있습니다.

[AOS][Java] 인텐트 사용하기 - Stickode

 

스틱코드

 

stickode.com

void share(String content) {
    Intent intent = new Intent(Intent.ACTION_SEND)
            .setType("text/plain")
            .putExtra(Intent.EXTRA_TEXT, content);
    Intent chooser = Intent.createChooser(intent, "랜덤숫자 공유하기");
    startActivity(chooser);
}

 

 

 

액티비티 전체 코드입니다.

ShareNumberActivity.java

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.util.Locale;
import java.util.Random;

public class ShareNumberActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_share);

        findViewById(R.id.btn_share).setOnClickListener(this);
        findViewById(R.id.btn_new_number).setOnClickListener(this);
    }


    void share(String content) {
        Intent intent = new Intent(Intent.ACTION_SEND)
                .setType("text/plain")
                .putExtra(Intent.EXTRA_TEXT, content);
        Intent chooser = Intent.createChooser(intent, "랜덤숫자 공유하기");
        startActivity(chooser);
    }

    @SuppressLint("NonConstantResourceId")
    @Override
    public void onClick(View v) {
        TextView tvNumber = findViewById(R.id.tv_number);
        switch (v.getId()) {
            case R.id.btn_share:
                String message = "[랜덤숫자 생성기]\n랜덤숫자는 '" + tvNumber.getText().toString() + "'입니다.";
                share(message);
                break;
            case R.id.btn_new_number:
                int number = (int) (Math.random() * 10000);
                tvNumber.setText(String.valueOf(number));
                break;
        }
    }
}

 

 

 

이렇게 쉽게 랜덤숫자를 생성하고 공유하는 앱을 만들 수 있었습니다.