๐Ÿ“ฑ [ App/Java ] Android App ๊ฐœ๋ฐœ - Layout, TextView, CheckBox

Dongmin Kimยท2021๋…„ 8์›” 23์ผ
0

๐Ÿ“ฑApp

๋ชฉ๋ก ๋ณด๊ธฐ
2/2
post-thumbnail

๐Ÿ“Œ Linear Layout

  • ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.
  • ์ขŒ์—์„œ ์šฐ, ์œ„์—์„œ ์•„๋ž˜ ๋ฐฉํ–ฅ์œผ๋กœ ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.
  • orientation : ๋ทฐ๊ฐ€ ๋ฐฐ์น˜๋  ๋ฐฉํ–ฅ ( horizontal : ์„ธ๋กœ , vertical : ๊ฐ€๋กœ )
  • weight : Linear Layout ์— ๋ฐฐ์น˜๋œ ๋ทฐ์˜ ์†์„ฑ์œผ๋กœ ๋ฐฐ์น˜ ํ›„ ๋‚จ์€ ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›์„ ๋น„์œจ์„ ์„ค์ •ํ•œ๋‹ค.

๐Ÿ“Œ Relative Layout

  • Relative Layout ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๋ทฐ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฐฐ์น˜ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.
  • Relative Layout ์€ ๋ณ„๋‹ค๋ฅธ ์†์„ฑ์ด ์—†๊ณ  ์—ฌ๊ธฐ์— ๋ฐฐ์น˜๋œ ๋ทฐ๋“ค์—๊ฒŒ ์†์„ฑ์ด ์ถ”๊ฐ€๋œ๋‹ค.
  • Layout ์„ ๋ฐฐ์น˜ํ•˜๊ณ , ๊ทธ ์•ˆ์—๋‹ค๊ฐ€ View ๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ๋ฐฐ์น˜๋œ View ๋“ค์ด ์ž์‹์ด ๋˜๊ณ , Layout ์ด ๋ถ€๋ชจ๊ฐ€ ๋œ๋‹ค.

๋ถ€๋ชจ์™€์˜ ๊ด€๊ณ„

  • alignParentTop : ๋ทฐ์˜ ์ƒ๋‹จ์„ ๋ถ€๋ชจ์˜ ์ƒ๋‹จ์— ๋งž์ถ˜๋‹ค.
  • alignParentBottom : ๋ทฐ์˜ ํ•˜๋‹จ์„ ๋ถ€๋ชจ์˜ ํ•˜๋‹จ์— ๋งž์ถ˜๋‹ค.
  • alignParentLeft : ๋ทฐ์˜ ์ขŒ์ธก์„ ๋ถ€๋ชจ์˜ ์ขŒ์ธก์— ๋งž์ถ˜๋‹ค.
  • alignParentRight : ๋ทฐ์˜ ์šฐ์ธก์„ ๋ถ€๋ชจ์˜ ์šฐ์ธก์— ๋งž์ถ˜๋‹ค.
  • centerHorizontal : ๋ทฐ์˜ ๊ฐ€๋กœ ์ค‘์•™์„ ๋ถ€๋ชจ์˜ ๊ฐ€๋กœ ์ค‘์•™์— ๋งž์ถ˜๋‹ค.
  • centerVertical : ๋ทฐ์˜ ์„ธ๋กœ ์ค‘์•™์„ ๋ถ€๋ชจ์˜ ์„ธ๋กœ ์ค‘์•™์— ๋งž์ถ˜๋‹ค.
  • centerInParent : ๋ทฐ์˜ ์ค‘์•™์„ ๋ถ€๋ชจ์˜ ์ค‘์•™์— ๋งž์ถ˜๋‹ค.

๋‹ค๋ฅธ ๋ทฐ์™€์˜ ๊ด€๊ณ„

  • align_top : ๋ทฐ์˜ ์ƒ๋‹จ์„ ์ง€์ •๋œ ๋ทฐ์˜ ์ƒ๋‹จ์— ๋งž์ถ˜๋‹ค.
  • align_bottom : ๋ทฐ์˜ ํ•˜๋‹จ์„ ์ง€์ •๋œ ๋ทฐ์˜ ํ•˜๋‹จ์— ๋งž์ถ˜๋‹ค.
  • align_left : ๋ทฐ์˜ ์ขŒ์ธก์„ ์ง€์ •๋œ ๋ทฐ์˜ ์ขŒ์ธก์— ๋งž์ถ˜๋‹ค.
  • align_right : ๋ทฐ์˜ ์šฐ์ธก์„ ์ง€์ •๋œ ๋ทฐ์˜ ์šฐ์ธก์— ๋งž์ถ˜๋‹ค.
  • below : ์ง€์ •๋œ ๋ทฐ ํ•˜๋‹จ์— ์œ„์น˜ํ•œ๋‹ค.
  • above : ์ง€์ •๋œ ๋ทฐ ์ƒ๋‹จ์— ์œ„์น˜ํ•œ๋‹ค.
  • toRightOf : ์ง€์ •๋œ ๋ทฐ ์šฐ์ธก์— ์œ„์น˜ํ•œ๋‹ค.
  • toLeftOf : ์ง€์ •๋œ ๋ทฐ ์ขŒ์ธก์— ์œ„์น˜ํ•œ๋‹ค.
  • baseline : ์ง€์ •๋œ ๋ทฐ์˜ ๋ฒ ์ด์Šค๋ผ์ธ์— ๋งž์ถ˜๋‹ค.

๐Ÿ“Œ TextView

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž์—ด์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” View ์ด๋‹ค.

์ฃผ์š”์†์„ฑ

  • text : Textview ๋ฅผ ํ†ตํ•ด์„œ ๋ณด์—ฌ์ค„ ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•œ๋‹ค.
  • textAppearance : ๋ฏธ๋ฆฌ ์ œ๊ณต๋˜๋Š” ํ…Œ๋งˆ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ( ๊ธ€์ž์˜ ํฌ๊ธฐ, ๊ธ€๊ผด๋“ฑ๋“ฑ )

์ฃผ์š” ๋ฉ”์„œ๋“œ

  • setText : ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•œ๋‹ค.
package com.example.checkbox;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    // ๋ทฐ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋‹ด์„ ์ฐธ์กฐ๋ณ€์ˆ˜
    TextView text1;
    // ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.
    CheckBox check1, check2, check3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // ๋ทฐ์˜ ์ฃผ์†Œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.
        text1 = (TextView)findViewById(R.id.textView);
        check1 = (CheckBox)findViewById(R.id.checkBox);
        check2 = (CheckBox)findViewById(R.id.checkBox2);
        check3 = (CheckBox)findViewById(R.id.checkBox3);
        // ์ฒดํฌ๋ฐ•์Šค์˜ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์„ค์ •ํ•œ๋‹ค.
        CheckBoxListener listener = new CheckBoxListener();
        check1.setOnCheckedChangeListener(listener);
        check2.setOnCheckedChangeListener(listener);
        check3.setOnCheckedChangeListener(listener);
    }

    // ์ฒซ ๋ฒˆ์งธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.
    // ์ฒดํฌ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•œ๋‹ค
    public void btn1Method(View view){
        text1.setText("");

        // ์ฒดํฌ ์ƒํƒœ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.
        boolean a1 = check1.isChecked();
        boolean a2 = check2.isChecked();
        boolean a3 = check3.isChecked();

        if (a1 == true){
            text1.append("์ฒซ ๋ฒˆ์งธ ์ฒดํฌ ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.\n");
        }
        if (a2 == true){
            text1.append("๋‘ ๋ฒˆ์งธ ์ฒดํฌ ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.\n");
        }
        if (a3 == true){
            text1.append("์„ธ ๋ฒˆ์งธ ์ฒดํฌ ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.\n");
        }
    }

    // ๋‘ ๋ฒˆ์งธ ๋ฒ„ํŠผ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฉ”์„œ๋“œ
    // ๋ชจ๋“  ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌ์ƒํƒœ๋กœ ์„ค์ •ํ•œ๋‹ค
    public void btn2Method(View view){
        check1.setChecked(true);
        check2.setChecked(true);
        check3.setChecked(true);
    }

    // ์„ธ ๋ฒˆ์งธ ๋ฒ„ํŠผ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฉ”์„œ๋“œ
    // ๋ชจ๋“  ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•ด์ œ๋กœ ์„ค์ •ํ•œ๋‹ค.
    public void btn3Method(View view){
        check1.setChecked(false);
        check2.setChecked(false);
        check3.setChecked(false);
    }

    // ๋„ค ๋ฒˆ์งธ ๋ฒ„ํŠผ๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฉ”์„œ๋“œ
    // ๋ชจ๋“  ์ฒดํฌ ๋ฐ•์Šค์˜ ์ฒดํฌ ์ƒํƒœ๋ฅผ ๋ฐ˜์ „์‹œํ‚จ๋‹ค.
    public void btn4Method(View view){
        check1.toggle();
        check2.toggle();
        check3.toggle();
    }

    // ์ฒดํฌ๋ฐ•์Šค์˜ ์ฒดํฌ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฐ˜์‘ํ•˜๋Š” ๋ฆฌ์Šค๋„ˆ
    class CheckBoxListener implements CompoundButton.OnCheckedChangeListener{
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // ์ฒดํฌ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ฒดํฌ๋ฐ•์Šค์˜ id๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
            int id = buttonView.getId();
            // ์•„์ด๋”” ๊ฐ’์œผ๋กœ ๋ถ„๊ธฐํ•œ๋‹ค.
            switch (id) {
                case R.id.checkBox:
                    if (isChecked == true) {
                        text1.setText("์ฒซ ๋ฒˆ์งธ ์ฒดํฌ ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    } else {
                        text1.setText("์ฒซ ๋ฒˆ์งธ ์ฒดํฌ ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ ํ•ด์ œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    }
                    break;
                case R.id.checkBox2:
                    if (isChecked == true) {
                        text1.setText("๋‘ ๋ฒˆ์งธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    } else {
                        text1.setText("๋‘ ๋ฒˆ์งธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ ํ•ด์ œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    }
                    break;
                case R.id.checkBox3:
                    if (isChecked == true) {
                        text1.setText("์„ธ ๋ฒˆ์งธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    } else {
                        text1.setText("์„ธ ๋ฒˆ์งธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ ํ•ด์ œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
                    }
                    break;
            }
        }
    }
}

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 8์›” 29์ผ

์—ด์‹ฌํžˆ ํ•˜๋Š” ๋ชจ์Šต์ด ๋ฉ‹์ง€๋„ค์šฉ

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ