안드로이드 2일차

ParkJinYoung·2022년 10월 5일

View

  • 화면구성 4가지
    - 텍스트(Text), 이미지(Image), 에딧텍스트 (EditText), 버튼(button)
  • 기본 속성 : layout_가로길이(width), 세로길이(height), 아이디(id)
  • 가장 추상적인 클래스 (Object)
  • 상속받는 것에 따라서 Text, Image를 넣을 수 있다.
  • wrap : content 크기에 맞춰서 , Match constraint : 크기에 맞춰서 조절된다.
  • layout_ : 바깥과 상관있는 속성, 안붙어있으면 속성본인
  • id 속성 : xml에 있는 View를 찾기위한 , java에서 코드를 컨트롤하기위해서, view를 구분짓는 속성, xml내에서 똑같은 id를 줄 수 없다.

view 계층도

코드 : 클릭시 바뀌는 글자

package com.jyp.ex1005_2;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.util.Size;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
//  boolean isChecked = true; 메소드 밖으로 옮겨서 재실행하지않도록 한다
    TextView tv_hello;
    //변수 = 생성 : 자료형 o , 사용 : 자료형 x
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //Activity(화면) 실행될 때 최초 딱 한번 호출되는 메소드 - Activity 생명주기
        super.onCreate(savedInstanceState);//속성값을 적어놓은 상태유지
        //✔✔✔✔✔ xml과 java연결하는 코드
        //무조건 findViewById는 이 코드 아래에 써야한다
        setContentView(R.layout.activity_main);
        //1. xml의 view에 id값 지정하기
        //2. view 찾아오기

        //TextView tv_hello = findViewById(R.id.tv_hello);//tv_hello : int형식이라서 view의 주소값

        //3. 메소드 호출해서 속성값 지정하기
        //tv_hello.setTextColor(Color.BLUE);//Color.parseColor(colorString:"#색상코드");
        //tv_hello.setText("안녕하세요!");
        //tv_hello.setTextSize(22);

        //이벤트 처리하는 방법
        //버튼을 터치했을 경우 TextView의 속성을 바꿔보자
        //1. 이벤트 메소드 설계하기
        //2. 설계한 메소드 연결하기
        tv_hello = findViewById(R.id.tv_hello);

    }

    //CallBack 방식 '클릭할때마다' 한번씩 호출되는 메서드
    //리턴하면 호출한곳으로 값을들고 간다.
    //접근제한자 이름 (매개변수 : 무조건 View가 붙어야 인식한다){}
    public void myClick(View currentEvent) {

        if (tv_hello.getText().equals("안녕하세요!")) {
            tv_hello.setTextColor(Color.BLUE);
            tv_hello.setText("Hello World!");
            tv_hello.setTextSize(22);
        } else {
            tv_hello.setTextColor(Color.BLUE);
            tv_hello.setText("안녕하세요!");
            tv_hello.setTextSize(22);
        }
//        //영어일때 true, 한글일때 false
//        if(isChecked){
//            tv_hello.setText("안녕하세요!");
//        }else{
//            tv_hello.setText("Hello World!");
//        }
//        isChecked=!isChecked;

    }


}

profile
꾸준히

0개의 댓글