๐ 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;
}
}
}
}
์ด์ฌํ ํ๋ ๋ชจ์ต์ด ๋ฉ์ง๋ค์ฉ