본문 바로가기
Android

View와 xml 이란

by noddu 2021. 3. 21.
728x90
반응형

●.xml페이지 상단버튼


Select Degisn Surface blueprint , design 볼수있게 설정
Orientation for Preview 가로세로 설정미리보기 (따로 설정가능)
Device for Preview 해상도설정
API Version for Preview 버전별 화면 확인

 



●.xml페이지 우측상단


Code - xml 소스코드 보기
Split - xml 소스코드 + 디자인
Design - 디자인

 

 

 


●MainActivity.java - xml 과 java 연결


AppcompatActicity 상속받아 안드로이드
Override - ▲ 재정의 


onCreate메소드 - App실행시 최초 한번만 실행되는 메소드( java의main처럼 )
Bundle( 화면돌릴때 다시시작하는데) savedInstanceState( 이전상태 저장 )
super.(부모클래스)onCreate (savedInstanceState)

 

 

 

 


* setContentView -  xml코드를 화면에 띄움, java코드와 연결 
R - resourse( R이라고하는 클래스)
R.layout.activity_main( R클래스폴더 ▶ layout클래스 ▶ activity_main사용하겠다는뜻)

 

 

 

findViewById - 상속받은것에있어 쓸수있는 메소드(AppcompatActivity)
xml파일에서 View의 id값을 지정하면 R.java파일에 변수(int형)로 주소값이 저장된다
참조(사용)하고 싶으면 R.id.변수명으로 사용 (int형으로저장되고, 변수명은 _ , $, 첫시작은 문자로 해야함)

 

 

 

( com.kmg.ex0309.R.id public static final int tv_text = 1000236 )

 

 

 

 

 

 

 

 


●View  -  TextView   -  EditText(+ 키패드,입력)
(최상위)              -  Button(+ onclick)
        - ImageView - imageButton
(이미지삽입) ( 버튼에이미지넣기(일반버튼도가능) )





ViewGroup - 뷰를 담을 수 있는 그릇(=레이아웃)
frameLayout - 화면 중첩넣기( fragment
RelativeLayout - 거의안씀 (ContraintLayout많이씀)
LinearLayout - 화면분할할때
- TableLayout
ContraintLayout(제약조건) - 





●.xml


◆button


우측 Declared Attributes▼

layout_width, height속성
wrap_content - 글자쓴 크기만큼
match constraint - 제약만큼 채우기
마우스로 크기조정하면 dp로 설정됨(절대적으로 설정됨)
gravity속성으로 글자 정렬가능

 


◆editText

hint속성 - 회색글씨 띄우기


1. 버튼눌렀을떄 btn메소드가 실행되게 정의
2. 적혀있는 EditText와 바꿀 TextView를 id값으로 찾아옴
3. EditText에 적혀있는 글자를 가져옴(getText)
4. TextView에 가져온글자를 지정(setText)

getText는 Editable형태로 되어있어서 바로String으로 담을수x
String str = edt_input.getText().toString(); 해야 담을수있음

 

 

 

 

 

package com.kmg.login;

public class MainActivity extends AppCompatActivity {

    //전역변수
    TextView tv_member;
    EditText edt_id;
    EditText edt_pw;

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

        //최초 한번만 실행되게 onCreate안에 넣기
        tv_member = findViewById(R.id.tv_member);
        edt_id = findViewById(R.id.edt_id);
        edt_pw = findViewById(R.id.edt_pw);
    }

    //버튼을 눌렀을 때 실행될 메소드
    public void btnClick(View v){

        //edt_id 와 edt_pw에 적힌 글자 각각 가져오기
        String id = edt_id.getText().toString();
        String pw = edt_pw.getText().toString();

        //log 찍어서 변수값 알아보는 법
        Log.v("btnClick",id + "/" +pw);


        // id = admin이면서 pw가 1234라면
        if(id.equals("admin") && pw.equals("1234")){
            tv_member.setText(id+"님 ㅎㅇ요");
        }else{ //id,pw 실패할때 메시지 띄우기 ( Toast massage )
            Toast.makeText(MainActivity.this,"??? 누구세연 ???", Toast.LENGTH_SHORT).show();
                // ▲ 회색글자:매개변수이름, context:클래스이름
        }
        // 로그인버튼 누르면 입력한 글자 초기화
        edt_id.setText(null);
            //또는
        edt_pw.setText("");
    }
}

 

 


◆에러찾기

 


Logcat (에뮬레이터 기록들) -> Error

activity_main에서 findView로 찾을수있기 때문에
activity_main이 먼저실행안된 상태로는 find 불가함




log 찍어서 변수값 알아보는 법 - Log.v("btnClick","id" + "/" +pw)

Logcat (에뮬레이터 기록들) -> Verbose , 설정한tag (btnClick)

 

반응형

'Android' 카테고리의 다른 글

Intent 사용하기  (0) 2021.03.22
Constraint Layout + 주사위게임 만들기  (0) 2021.03.21
Constraint Layout 예제 실습  (0) 2021.03.19
Button + onclick속성  (0) 2021.03.11
에뮬레이터 설정 , 간단한onclick  (0) 2021.03.09