본문 바로가기

노트필기

[Android] 2nd Class

2017.06.08

[Android] 2nd Class


1. 안드로이드 스튜디오(Android Studio) 한글 폰트 깨질 때


- 위 경로로 가서 fonts.xml 파일을 바탕화면에 복사하고 바탕화면에서 메모장으로 열기



- famliy lang="ko" 찾아서 </font> 앞에 있는 부분을 "NanumGothic.ttf"로 바꿔주고 저장!

- 다시 원래 있던 폴더로 덮어쓰고 안드로이드 스튜디오 재실행


2. onClickListener


* onClickListener를 MainActivity에 implements 한다.

* onClick메소드를 오버라이딩 한다.

* onClick메소드 안에 이벤트가 발생 했을 때 해줘야 할 일을 구현한다.

* 이벤트를 지정해 줄  View를 찾아와서 setonClickListener(this) 해준다.


3. 인텐트

- 안드로이드에서 다른 객체들과의 접착제 역할 같은 걸 해준다.

- main에서는 'putExtra'로 전달해 주고 sub에는 'getExtra'로 받는다.


4. 버튼과 화면 전환


<MainActivity>

package com.oneplus.admin9.class0608_park;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
int week = 3;

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

findViewById(R.id.tvMsg);

final TextView tvMsg = (TextView) findViewById(R.id.tvMsg);
tvMsg.setText(getStringMsg(week));

findViewById(R.id.btnPlus).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tvMsg.setText(getStringMsg(++week));
}
});

findViewById(R.id.btnMinus).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tvMsg.setText(getStringMsg(--week));
}
});

findViewById(R.id.btnNext).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//인텐트 : 안드로이드에서 다른 객체들과의 접착제 역할 같은 걸 해준다.
Intent i = new Intent(MainActivity.this, SubActivity.class);
i.putExtra("week", week);
startActivity(i);
}
});
}


@NonNull
private String getStringMsg(int week) {
return "안드로이드 학습기간이 " + week + "주인데 괜찮나요?";
}
}

<SubActivty>


package com.oneplus.admin9.class0608_park;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class SubActivity extends AppCompatActivity {

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

Bundle extras = getIntent().getExtras();
if (extras != null) {
int week = extras.getInt("week");
((TextView) findViewById(R.id.tvWeek)).setText(week + "주");
}
}
}

5. 스텍 처리를 안해주면 back 버튼 눌렀을 때 예전에 남아 있던게 계속 쌓여 메모리를 엄청 잡아먹는다.


6. 이미지 뷰(image view)



'노트필기' 카테고리의 다른 글

[Do it 안드로이드] Parcelable 예제  (0) 2017.06.18
[Android] 5th Class  (0) 2017.06.13
[Android] 4th Class  (0) 2017.06.12
[Android] 3rd Class  (0) 2017.06.09
[Android] 1st.Class  (0) 2017.06.07