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 |