ANDROID ์ด๋ฒคํธ ์ฒ๋ฆฌ - ๋ฆฌ์ค๋ ์ธํฐํ์ด์ค ๊ตฌํ
ย ์ค์ตย ํ ์คํธ ํ๊ฒฝ
ย OSย : Windows XP
ย Eclipseย : ย Android Developer Tools Build: v22.0.5-757759
ย Project Build Targetย : Android 4.12 API Level 16
ย Emulator API Levelย :ย ๋ณธ๋ฌธ ์ฐธ์กฐ
ย ย Overview
ย ๋๋ถ๋ถ์ ์์คํ ์ ์ด๋ฒคํธ์ ๋ฐ์ํ๋๋ก ์ค๊ณ๋์ด ์๋ค. ์ฌ๊ธฐ์ ์ด๋ฒคํธ๋ ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ก ๋ฒํด์ ํด๋ฆญํ๊ฑฐ๋ ํค๋ณด๋์ ํค๋ฅผ ๋๋ฅด๋ ํ์ ๋ฑ์ ๋งํ๋ค. ์ด๋ฌํ ์์คํ ์ ๋ง๊ฒ ํ๋ก๊ทธ๋จํ๋ ๋ฐฉ๋ฒ์ event driven programming(์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ)์ด๋ผ๊ณ ํ๋ค.ย
์๋๋ก์ด๋๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํดย ย "์ฝ๋ฐฑ๋ฉ์๋"์ย "๋ฆฌ์ค๋ ์ธํฐํ์ด์ค"๋ฅผ ย ์ ๊ณตํ๋๋ฐ ์ฌ๊ธฐ์๋ ๋ฆฌ์ค๋ ๋ฐฉ๋ฒ๋ง์ ์ค๋ช ํ๊ณ ์ฝ๋ฐฑ๋ฉ์๋๋ ๋ค์์ ์ค๋ช ํ๋ค.
์๋๋ก์ด๋์ ๋ฆฌ์ค๋ ์ธํฐํ์ด์ค๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ธํฐํ์ด์ค์ด๋ค.ย ์๋๋ก์ด๋์ ๋ฆฌ์ค๋๋ ๊ฐ๋ฐ์๊ฐ ๋ฆฌ์ค๋ ๊ตฌํ์ด ํธํ๊ฒ(?)ย ๊ทธ ์ด๋ฒคํธ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๊ฐ์ฒด ํด๋์ค์ ๋ด๋ถ ์ธํฐํ์ด์ค๋ก ์ ์ ๋์ด ์๋ค. ย
ย ย [step1] Fileย -> Newย -> Android Application Project
ย [step2] res -> values -> strings.xml ํ์ผ ์คํ(๋๋ธํด๋ฆญ) ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋ ์ถ๊ฐ
<?xml version="1.0" encoding="utf-8"?> <resources>
ย ย ย <string name="app_name">event_test</string> ย ย ย <string name="action_settings">Settings</string> ย ย ย ย <string name="btn1">์ด๋ฒคํธ ํ ์คํธ</string>
</resources>
ย ย ย [step3] res -> layout -> activity_main.xml ํ์ผ ์คํ(๋๋ธํด๋ฆญ) ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋ ์ถ๊ฐ
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ย ย ย xmlns:tools="http://schemas.android.com/tools" ย ย ย android:layout_width="match_parent" ย ย ย android:layout_height="match_parent">
ย ย ย ย <Button ย ย ย ย ย ย ย android:id="@+id/btn1" ย ย ย ย ย ย ย android:layout_width="wrap_content" ย ย ย ย ย ย ย android:layout_height="wrap_content" ย ย ย ย ย ย ย android:text="@string/btn1" />
</RelativeLayout>
- ์ฝ๋์ค๋ช
@+idย : layout.xmlํ์ผ ์์ view๋ฅผ R.java ํด๋์ค์ id ๋ด๋ถํด๋์ค์ย ๋ฑ๋ก
@stringย : R.java ํด๋์ค์ string ๋ด๋ถํด๋์ค๋ฅผ ์ฐธ์กฐย ย
ย ย [step4] src -> package -> MainActivity.java ํ์ผ ์คํ(๋๋ธํด๋ฆญ)ํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋ ์ถ๊ฐ
packageย zeroday.event_test;
ย importย android.app.Activity;
importย android.os.Bundle;
importย android.view.Menu;
importย android.view.View;
importย android.widget.Button;
importย android.widget.Toast;
ย publicย classย MainActivityย extendsย Activity {
ย ย ย ย ย ย ย Buttonย btn1;
ย ย ย ย ย ย ย ย ย ย ย ย ย @Override
ย ย ย ย ย ย ย protectedย voidย onCreate(Bundle savedInstanceState) {
ย ย ย ย ย ย ย ย ย ย ย ย ย super.onCreate(savedInstanceState);
ย ย ย ย ย ย ย ย ย ย ย ย ย setContentView(R.layout.activity_main);
ย ย ย ย ย ย ย ย ย ย ย ย ย btn1ย = (Button)findViewById(R.id.btn1);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย btn1.setOnClickListener(newย View.OnClickListener() {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย @Override
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย publicย voidย onClick(View v) {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Toast.makeText(MainActivity.this,ย "btn1ย ํด๋ฆญ", Toast.LENGTH_SHORT).show();
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย ย ย ย ย ย });
ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย @Override
ย ย ย ย ย ย ย publicย booleanย onCreateOptionsMenu(Menu menu) {
ย ย ย ย ย ย ย ย ย ย ย ย ย getMenuInflater().inflate(R.menu.main, menu);
ย ย ย ย ย ย ย ย ย ย ย ย ย returnย true;
ย ย ย ย ย ย ย }
}
-์ฝ๋์ค๋ช
view findViewById(int id)ย : R.java ํด๋์ค์ id ๋ด๋ถํด๋์ค์ view๋ฅผ ๋ฆฌํด
ํด๋์ค๋ช .thisย : ๋ด๋ถ ํด๋์ค์์ ์ธ๋ถํด๋์ค๋ฅผ ์ฐธ์กฐํ ๋ ์ธ๋ถํด๋์ค๋ช .this ์ฌ์ฉ
Toastย : ์๋๋ก์ด๋ ๋ฉ์ธ์ง ์ถ๋ ฅ ๊ฐ์ฒด
[step5] ์คํ







