액티비티 만들기

1. 액티비티를 상속받는 자바클래스 작성

2. MainFest에 액티비티를 등록

3. 액티비티가 사용할 레이아웃xml파일 작성(옵션)

4. 1의 onCreate메소드에서 3파일을 뷰로 연결.


R.java -> 안드로이드에서 사용하는 자원들을 자바코드에서 참조할 수 있도록 참조값을 갖는 연결고리

R.java는 어플리케이션의 패키지명으로 지정된 패키지 경로에 자동생성됨 (자원등록 중 에러가 발생하면 생성되지 않음)


액티비티가 속한 패키지명도 어플리케이션의 패키지명과 동일하게 한다

[장점]

1. R.java랑 같은 패키지에 위치해서 R클래스를 따로 임포트 해주지 않아도 됨

2. Manifest에 액티비티 등록할때 패키지명 생략가능

3. 1,2는 패키지 구조 복잡도가 올라가면 다시 분리 되겠지만 코드관리를 위해



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="패키지명"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="20" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity"></activity>
                              .으로 시작하면 앞에 어플의 패키지명 
    </application>
 
</manifest>
cs

activity태그는 필수로 name속성을 가져야하고 name속성의 값에는 사용할 자바 클래스 파일(Activity를 상속받은)을 지정해야 됨

엑티비티는 어플리케이션의 구성요소이자 하나의 화면단위이고 명령처리흐름을 갖음

어플리케이션은 최소 하나의 메인엑티비티를 가져야하고 메인엑티비티가 되는 녀석을 Intent-filter에 메인속성과 런처 속성을 가져야됨


1
2
3
4
            <intent-filter >
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
cs



7
8
9
10
public class MainActivity extends Activity{
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="안녕 안드로이도"
        android:id="@+id/tv"
        /> id 만들어놓기
    <button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="버튼이닷"
        android:id="@+id/btn"
        />
</LinearLayout>
cs

1
2
   TextView tv =(TextView) findViewById(R.id.tv);
   Button btn = (Button) findViewById(R.id.btn);
cs

xml에 정의한 UI 위젯의 참조값 얻기

1
2
3
4
5
6
7
8
9
        btn.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                tv.setText("Bye Android");
                
            }
        });        
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="나이를 입력하세요" />
 
    <EditText
        android:id="@+id/num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="numberSigned" />
 
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="버튼" />
 
    <TextView
        android:id="@+id/age"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MainActivity extends Activity{
    private EditText inputAge;
    private Button btn;
    private TextView result;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        inputAge = (EditText) findViewById(R.id.num);
        btn = (Button) findViewById(R.id.btn);
        result = (TextView) findViewById(R.id.age);
        //지금은 이름을 대충 지었는데 id값들은 신중하게 잘 지어야됨 
        //모든 xml파일에서 하나의 id 네임스페이스를 사용함
        
cs


' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day89 안드로이드 엑티비티 전환  (0) 2016.07.25
Day88  (0) 2016.07.22
Day87  (0) 2016.07.21
Day86  (0) 2016.07.20
Day84 안드로이드  (0) 2016.07.18

+ Recent posts