●.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 |