지금까지 배운 내용 총 정리

Posted on Updated on

지금까지 배운 내용 총 정리

setContentView(R.layout.activity_main)

위치 : 각각의 액티비티 자바 파일
R : resource 폴더의
layout : layout 폴더의
activity_main : activitymain.xml

즉, 인자로 넘겨주는 xml 파일을 화면에 표시하겠다는 말. 화면에 무엇을 보여줄 지 결정하는 메소드

소스코드 크기 및 줄번호 추가

폰트 크기 위치 : file – settings – Editor – Colors & Fonts – Font
소스 줄번호 위치 : 소스 창 왼편에서 마우스 우클릭 – Show Line Numbers

버튼에 이벤트를 생성하기

XML 레이아웃에 onClick 속성 추가하기 (onButtonClicked 같은 속성값을 사용)
자바 파일에 이벤트 처리 메소드 추가하기 (메소드명을 위의 속성값과 일치시켜야함)

토스트

Toast.makeText(getApplicationContext(), “시작 버튼이 눌렸어요”, Toast.LENGTH_LONG).show();

Toast.
makeText(
getApplicationContext(),
“시작 버튼이 눌렸어요”,
Toast.LENGTH_LONG
).show();

인텐트

Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(“tel:010-0000-0000”));
startActivity(myIntent);

위 처럼 작성하면 전화 화면이 번호와 함께 열린다.

다른 액티비티에 인텐트를 건내주기

건내주는 쪽

Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);

받는 쪽

Intent intent = getIntent();
String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

인텐트 컨스트럭터

Intent(Intent) 복사
Intent(String)
Intent(String, Uri)
Intent(Context, Class<?>)
Intent(String, Uri, Context, Class)

finish();

끝내라는 것, 뒤로 가기 할 때 한다

startActivity(intent);

Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);
새로운 액티비티를 띄울 때 쓴다.

jarsigner

마켓에 올릴 때 이용해야 함

SDK 개발 도구

뷰와 뷰 그룹

뷰: UI 구성 요소. 위젯이라고 생각해도 됨
뷰그룹 : 뷰들의 위치를 지정할 수 있음. 레이아웃이라 생각하면 됨

뷰 크기 정하기

match_parent : 쓸 수 있는 한 다 쓰기
wrap_content : 자신에 맞춰서 쓰기

dp 혹은 dip

밀도 독립적 픽셀
160dip 화면을 기준으로 한 픽셀
1인치당 160픽셀인 화면에서 1dp : 1px
1인치당 320픽셀인 화면에서 1dp : 2px
dp 사용을 추천한다.

인플레이션

왜 인플레이션이란 개념이 나온 것일까?
다른 xml 파일에 있는 내용을 자바코드에서 변경하고 싶은데, 그 것을 참조하기 위해 ID란 장치를 만들었다.
그리고 xml 파일에서 각각의 객체들은 메모리에 적재(인플레이션) 되고, 그 메모리 위치는 ID라는 것으로 찾아 갈 수 있는 것이다. 그러므로, 인플레이션이라는 것이 중요한 게 아니라 ID 라는 것이 중요한 것 같다.

xml 파일에서 객체들의 ID는  @+id/myID 같은 형식으로 지정해 준다.
자바 파일에서 위의 id를 R.id.myID 같은 형식으로 참조한다

클릭 이벤트 등록 – setOnClickListener();

//onCreate 같은 곳에서 해야함

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){});

onClickListener는 onClick을 반드시 구현 해야함. 결국 이렇게 생김

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v){
블라블라 구현부는 여기로!
}
});

뷰의 백그라운드 컬러 설정

##알파알알지지비비

manifest

기초적이고 전반적인 설정이 모여있는 곳

시작 액티비티 설정을 하려면 – manifest 파일을 고쳐야 한다.

activity 의 name 속성을 바꿔주면 되는데… 근데 그 액티비티가 많다. 그럼 어떻게 해야하는걸까?

setContentView();

인자로 정적인 xml 을 넣을 수도 있고, 동적인 layout 을 넣을 수도 있다.

context

코드에서 뷰 객체를 만들 때는 반드시 Context 가 들어가야 한다.
액티비티는 Context를 상속하기 때문에, 액티비티 내에서는 this 를 넣어주면 된다.

Context란 일반적으로 어떤 일이 발생한 부대상황을 의미한다.
프로그래밍 언어에서는 객체의 상태 정보를 말하는 경우가 많다.
안드로이드에서는 뷰의 생성자에 Context 를 전달하도록 한다.
뷰에 대한 정보를 손쉽게 확인하거나 설정할 수 있게 하려는 의도이다.

정렬 방향 설정하기

layout_gravity : 뷰간 정렬
gravity : 뷰 내 컨텐츠 정렬

여유 공간 설정하기

layout_margin : 뷰 간 공간
padding : 뷰 내 컨텐츠 여유공간

공간 가중치

layout_weight

기본 위젯들

텍스트뷰
버튼
에디트텍스트
이미지뷰

화면에 이미지를 표시하고 싶다. 어떻게 해야할까?

이미지뷰

src
maxWidth, maxHeight
tint
scaleType

imageView.setImageDrawable(bitmap); 을 했더니 계속 뻗는다.
이유를 모르겠다.

setImageResource 이 것을 해도 뻗는다. 왜 그러는 것일까?
logcat 을 살펴 보니 Out of memory on a 53934352-byte allocation. 라고 뜬다.
용량이 너무 큰 이미지를 사용했기 때문이다.

Out of memory on a 53934352-byte allocation.

setImageResource 등등 이미지를 가져다 세팅하는 메서드를 사용할 때 너무 큰 이미지를 사용하니 이런 에러가 뜨면서 런타임에서 죽어버렸다.
어떻게 하면 용량이 큰 이미지도 넣을 수 있을까?

LinearLayout이랑 RelativeLayout 은 지정할 수 있는 속성값이 다르다

리스너를 등록해서 무언가가 바뀌었을 때마다 무언가를 하고 싶을 때

addTextChangedListener를 등록하면 된다. 인자로써TextWatcher를 갖는다.

setContentView 하기 전에 뷰들의 형체를 가져다 쓸 순 없다

예를 들어,
EditText edit = (EditText)findViewById(R.id.editText);
라는 것을 쓰고 싶은데, 이 것을 어디에 써야 할까?
아무리 적어도 findViewById는 setContentView 하기 전에는 놓으면 안되는 듯 하다

책 196페이지에 보면(Do it android) 나와있다. 인플레이션에 관련되어 있다.
setContentView라는 친구가 xml객체를 인플레이션 한다.
그래서 그 이전에 xml의 내용을 참조하려고 하면 에러가 나는 것이다.

setFilters(), LengthFilter() 메서드

이 것으로 편집중인 입력창의 문자열의 길이를 알아낼 수 있다.

안드로이드 개발 유투브 추천

TK이게 좋다. 잘 얘기해주는 것 같다.
TimkippTutorials

https://m.youtube.com/#/playlist?list=PL9ZDLcyKnZ4jzFC0aBEV2f5pf4BKA3JWN

setOnClickListener

set 설정한다
On ~했을 때
Click 클릭
Listener 듣는 놈을

이 메서드가 지금까지 공부했던 내용중에 가장 중요한 것 같다. 콜백을 등록한다는 것

스크린 클릭 – > 이벤트 핸들러 -> 이벤트 객체  -> 버튼1, 2, 3 등등처리를 골라서 하게 해 주는 것

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중