출처: https://3months.tistory.com/307 [Deep Play]

안드로이드/연습

[Android] 좀 그럴 듯한 앱

코딩하는 랄뚜기 2021. 8. 10. 11:23
<?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:orientation="vertical"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/Edit1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </EditText>
    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="글자 나타내기"
        >

    </Button>
    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="홈페이지 열기"
        >

    </Button>
    <RadioGroup
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:gravity="center"
        android:id="@+id/Group1">
        <RadioButton
            android:id="@+id/maleButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="남성">
        </RadioButton>

        <RadioButton
            android:id="@+id/femaleButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="여성">
        </RadioButton>
    </RadioGroup>

    <ImageView
        android:id="@+id/genderImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="visible">
    </ImageView>


</LinearLayout>

xml 파일 코드. Layout 안에 Layout을 설정 할 수 있다는 것을 배웠다.

package com.example.helloandroid;

import androidx.annotation.IdRes;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {
    //전역변수를 생성하는 지
    TextView Edit1;
    Button button1;
    Button button2;
    RadioGroup Group1;
    ImageView genderImage;
    @Override
    protected void onCreate(Bundle savedInstanceState) { // c에서 main과 같은 역
        super.onCreate(savedInstanceState); //항상 가장먼저 시작해야됨
        setContentView(R.layout.activity_main); //activity_main.xml을 화면에 표시하라는 의미
        setTitle("좀 그럴듯한 앱");
        Edit1 = (EditText) findViewById(R.id.Edit1);
        button1 = (Button) findViewById(R.id.button1);//R.id.button1인 이유는 activity_main.xml에서 id를 button1으로 설정해줬기 때
        button2 = (Button) findViewById(R.id.button2);
        genderImage = (ImageView) findViewById(R.id.genderImage);
        Group1 = (RadioGroup) findViewById(R.id.Group1);
        Group1.setOnCheckedChangeListener(radioGroupButtonChangeListener);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Edit1.getText().toString() Edit text에 문자열을 가져올 때 쓰는 함
                Toast.makeText(getApplicationContext(),Edit1.getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent mIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(Edit1.getText().toString()));
                startActivity(mIntent);
            }
        });

    }
    RadioGroup.OnCheckedChangeListener radioGroupButtonChangeListener = new RadioGroup.OnCheckedChangeListener() {
        @Override // 함수를 불러올 때 반드시 있어야 함
        public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
            if(i == R.id.maleButton){
                genderImage.setImageResource(R.drawable.male);
            } else if(i == R.id.femaleButton){
                genderImage.setImageResource(R.drawable.female);
            }
        }
    };
}

RadioGroup의 개념에 대해서 알게 되었는데 RadioGroup을 객체 생성해주면 그 안에 있는 RadioButton도 id로 접근 할 수 있게 된다.

 

실행 화면