티스토리 뷰

반응형

Button의 XML속성

TextView나 View 클래스에서 상속받음

더보기
<Buttonandiroid : id = "@+id/btn1"

andiroid : id = "@+id/btn1"

android : layout_width = "wrap_content"

android : layout_height = "wrap_content"

android : layout_background = "#ff0000"

android : text = "버튼입니다"

/>


버튼을 클릭했을 때 동작하는 Java 코드 3단계

1) 버튼 변수 선언

Button mybutton;

 

2) 변수에 버튼 위젯 대입

mybutton = (Button) findviewById(R.id.button1);

 

3) 버튼을 클릭할 때 동작하는 클래스 정의

mybutton.setOnClickListener(new View.OnClickListener(){

Public void onClick(View v){

//동작 내용 부분 코딩

}

});


EditText의 값을 가져오는 Java 코드 3단계

더보기

1) 에디트텍스트 변수 선언

EditText myEdit;

2) 변수에 에디트텍스트 위젯 대입

myEdit = (EditText) findViewById(R.Id.edtTxt1)

3) 에디트텍스트에 입력된 값 가져오기

String myStr= myEdit.getText().toString();

→ getText() 메소드는 에디트텍스트에 입력한 값을 반환하는데, 이를 문자열로 바꾸기 위해 toString()을 함께 사용했다.


id 속성

더보기

id 속성은 모든 위젯의 아이디를 나타냄

java 코드에서 위젯에 접근할 때 id 속성에 지정한 아이디 사용

id 속성은 위젯에 아이디를 새로 부여하는 개념이므로 "@+id/"형식으로 지정

/ 다음에는 새로 지정 할 id를 적음

ex) andiroid : id = "@+id/btn1"

→ 버튼 위젯의 아이디를 btn1으로 부여한 것

 

위젯 변수 = (위젯형) findViewById(R.id.위젯id);

ex) Button button1;

button 1 = (Button) findViewById(R.id.btn1);


layout_width(가로), layout_height(세로) 속성

더보기

match_parent : 자신의 부모에 폭이나 높이를 맞춤

wrap_content : 자신의 폭이나 높이를 자신 안의 글자가 들어갈 정도로만 설정


background 속성

더보기

위젯의 색상을 주로 #RRGGBB 값으로 지정

각 값은 빨간색, 초록색, 파란색을 의미함

RR, GG, BB의 위치는 16진수 00~FF로 표현할 수 있음


padding 속성

더보기

위젯의 경계선으로 부터 위젯 안의 요소가 떨어지도록 설정

ex) android : padding = ""30dp"


layout_margin 속성

더보기

위젯과 위젯 사이에 여유를 두고 싶다면 layout_margin 속성을 사용


visibility 속성

더보기

위젯을 보일 것인지 여부를 결정

디폴트인 visible은 보이는 상태, invisible과 gone은 안보이는 상태

invisible : 보이지 않을 뿐 원래 자리를 계속 유지

gone : 보이지 않으며 자리까지 없어짐


enabled, clickable 속성

더보기

enabled : 위젯의 동작 여부

clickable : 클릭이나 터치가 가능하도록 함

true와 false로 지정 (디폴트 : true)

XML보다 Java 코드에서 주로 사용함

 

ex) <Button

android : text = "버튼 1"/>

 

<Button

android : enabled = "false"

android : tex ="버튼 2"/>

 

<Button

android : clickable = "false"

android : tex ="버튼 3"/>


rotation 속성

위젯을 회전시켜서 출력

값은 각도로 지정

더보기

ex) <Button

android : text = "버튼 1"/>

 

<Button

android : rotation = "45"

android : tex ="버튼 2"/>

 


CompoundButton 클래스

더보기

Button 클래스의 하위 클래스

체크박스, 라디오버튼, 스위치, 토글버튼의 상위클래스

 

체크박스

체크할 때마다 상태가 체크, 언체크로 변경

ex) <CheckBox

android:checked ="true"/>

 

Java 코드에서는 강제로 체크를 켜거나 끄는 setCheked(), 체크 상태를 반대로 바꾸는 toggle(),

체크 되었는지 확인하는 isChecked()등의 메소드가 있다.

버튼에서 클릭 이벤트 발생시 onClickListener 리스너를 사용했듯이, 체크박스에는 체크 또는 언체크 이벤트 발생 시 onCheckedchangeListener 리스너를 사용할 수 있다. 

 

1) 체크박스 변수 선언

CheckBox mycheck;

2) 변수에 체크박스 위젯 대입

mycheck = ( CheckBox  ) findViewById(R.Id. mycheck)

3) 에디트텍스트에 입력된 값 가져오기

mycheck.setOnCheckedchangeListener(new CompoundButton. OnCheckedchangeListener(){

public void onCheckedchangeListener (CompoundButton buttonView, boolean isChecked){

//동작 내용을 이부분에 코딩

}

});

 

 

라디오버튼

라디오 버튼: 여러개 중에 하나만 선택해야 하는 경우에 사용함

라디오 그룹 : 라디오버튼만 여러 개  나열하면 클릭하는 것마다 모두 중복 선택이 되므로 라디오그룹과 함께

사용되어야함

 

스위치

on. off

ex) <Switch

android:checked ="true"/>

 토글버튼

 


텍스트뷰의 속성

text 텍스트뷰에 나타나는 문자열 표현
textColor 글자의 색상을 지정
textSize 글자 크기를 dp, px, in, mm, sp 단위로 지정
typeface 글자의 글꼴을 지정
textStyle 글자의 기울기/ 두께를 지정
singleLine 글이 길어 줄이 넘어갈 경우 강제로 한 줄만 출력하고 문자열의 맨 뒤에 '...'을 표시
값으로 true와 false를 설정할 수 있으며 디폴트는 false

 


 

애완동물 사진 보기 앱 만들기

'시작함'에 체크하면 좋아하는 애완동물 세 가지 중에서 하나를 선택하라는 내용이 나온다.

선택 후에 <선택 완료> 버튼을 클릭하면 해당 애완동물의 이미지가 나타난다.

 

새 프로젝트를 만든다.

Android Studio의 Project Tree에서 app → res → activity_mailn.xml을 더블 클릭해서 열고,

오른쪽 위의 Code 탭을 클릭하여 화면을 코딩한다.

에디트텍스트 2개, 버튼 4개, 텍스트뷰 1개를 생성한다.

각 위젯에 layout_margin을 적절히 지정한다.

결과를 보여줄 TextView는 색상을 빨간색으로, 글자 크기를 30dp로 한다.

각 위젯의 아이디는 위에서부터 차례로 Edit1, Edit2, BtnAdd, BtnSub, BtnMul, BtnDiv, TextResult로 한다. 

 

 

더보기

activity_main.xml

<TextView

android:id="@+id/Text1"

android:text="선택을 시작하겠습니까?"/>

<CheckBox

android:id="@+id/ChkAgree"

android:text="시작함"/>

<TextView

android:id="@+id/Text2"

android:text="좋아하는 애완동물은?"

android:visibility="invisible"/>

<RadioGroup

android:id="@+id/Rgroup1"

android:visibility="invisible"/>

<RadioButton

android:id="@+id/RdoDog"

android:text="강아지"/>

<RadioButton

android:id="@+id/Rdocat"

android:text="고양이"/>

<RadioButton

android:id="@+id/Rdorabbit"

android:text="토끼"/>

 

</RadioGroup>

 

<Button

android:id="@+id/Butok"

android:text="선택완료"

android:visibility="invisible"/>

 

<imageView

android:id="@+id/Imgpet"

android:visibility="invisible"/>

 

 

 

더보기

Java코드

public class MainActivity extends AppCompatActivity {

 

TextView text1, text2;

CheckBox chkAgree;

RadioGroup rgroup1;

RadioButton rdoDog, rdoCat, rdoRabbit;

Button butok;

imageView imgpet;

@Override

public void onCreate(Bundle saveInstanceState){

super.onCreate( saveInstanceState);

setContentView(R.layout.activity_main);

setTitle("애완동물 사진보기")

 

text1 = (TextView) findViewById(R.id.Text1);

chkAgree = ( CheckBox)  findViewById(R.id.ChkAgree);

 


안드로이드에서 위젯이라고 부르지 않는 것은?

1. 버튼

2. 텍스트뷰

3. 레이아웃

4. 이미지뷰

 

더보기

위젯은 넓은 의미로는 View 클래스 하위의 모든 클래스를 지정하고,

좁은 의미로는 버튼, 텍스트뷰, 체크박스 등 눈에 보이는 요소를 지칭한다.

위젯을 담는 틀을 레이아웃이라고 한다.


가장 하위 단계의 클래스는?

1. ViewGroup

2. Gallery

3. CompoundBotton

4. ProgrssBar


위젯의 아이디를 통해 접근하는 메소드는?

1. findlDByView

2. FindViewUsingId

3. FindViewById

4. FindWidgetById

 


위젯의 크기를 화면에 꽉 차도록 설정하는 속성값은?

1. wrap_content

더보기

내용물의 크기에 맞춰 위젯의 크기 조절

2. match_parent

더보기

부모 요소의 크기에 맞춰 위젯의 크기를 확장

3. match_content

4. wrap_parent


import문을 자동 추가하는 Android Studio의 단축키는?

1. Space Bar + Enter

2. Ctrl + Enter

3. Shift + Enter

4. Alt + Enter


import문을 자동 추가하는 Android Studio의 단축키는?

1. Space Bar + Enter

2. ctrl + Enter

3. Shift + Enter

4. Alt + Enter

 


다음 그림은 리니어레이아웃에 버튼 2개가 들어가 있는 상태이다. 그림과 같이 여백을 설정하기 위해 리니어레이아웃 버튼 1에 각각 1개씩 XML 속성 및 값을 설정하시오

android:padding="60dp"

android:layout_margin = "40dp"

 

더보기

padding 속성에는 자신의 내부에 들어 있는 위젯과 자신의 경계선 사이 간격을 지정하고,

layout_margin 속성에는 자신과 부모 레이아웃이나 위젯 사이의 간격, 주위 다른 위젯과의 간격을 지정한다.


체크박스를 선택할 때마다 버튼의 속성이 설정되도록 프로젝트를 작성하시오.

 

더보기

activity_main.xml코드

android:layout_width="match_parent" android:layout_height="match_parent"

android:orientation="vertical"

<CheckBox android:id="@+id/Checkbox1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Enabled 속성"/>

<CheckBox android:id="@+id/Checkbox2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Clickable 속성"/>

<CheckBox android:id="@+id/Checkbox3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="45도 회전"/>

<Button android:id="@+id/Button"

android:layout_marginTop="200dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:rotation="45"

android:enabled="false"

android:clickable="false"

android:text="Button" /> </LinearLayout>

 

더보기

Java 코드

public class MainActivity extends AppCompatActivity {

    CheckBox checkBox1, checkBox2, checkBox3;
    Button Button;

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

        setTitle("연습문제 4-7")

        checkBox1 = findViewById(R.id.Checkbox1);
        checkBox2 = findViewById(R.id.Checkbox2);
        checkBox3 = findViewById(R.id.Checkbox3);

        Button = findViewById(R.id.Button);


        checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (checkBox1.isChecked() == true){
                    Button.setEnabled(true);
                } else {
                    Button.setEnabled(false);
                }
            }
        });

        checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (checkBox2.isChecked() == true){
                    Button.setClickable(true);
                } else {
                    Button.setClickable(false);
                }
            }
        });

        checkBox3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (checkBox3.isChecked() == true){
                    Button.setRotation(45);
                } else {
                    Button.setRotation(0);
                }
            }
        });
    }
}

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함