안녕하세요. 스타입니다.
어제 안드로이드 hellloworld 띄워 보았고요.
오늘은 Activity 전환에 대해서 알아보겠습니다.
안드로이드에서는 어플리케이션의 하나의 화면을 액티비티라고 말합니다.
액티비티의 화면은 레이아웃 파일로 수정하고, 동작은 소스코드에서 이루어 집니다.
액티비티의 상태(state)는 활성, 일시정지, 정지 이렇게 나뉘어져있습니다.
- 활성 : 액티비티가 현재 화면에 띄워져 있는 상태이며 사용자와 상호 작용이 가능한 상태
- 일시정지 : 액티비티가 화면에 표시되고 있긴 하지만 사용자와 상호 작용이 못하는 상태
- 정지 : 홈화면으로 나가거나, 다른 액티비티에 가려서 화면에서 아예 보이지 않게 된 상태
매니페스트에서 메인과 서브를 설정해 줍니다. 파일 이름은 대소문자를 가리기 때문에 확인해 주세요.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exam"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="MainActivity" android:label="@layout/activity_main">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="SubActivity" android:label="@layout/subactivity"></activity>
</application>
</manifest>
메인쪽 레이아웃 소스 코드
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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/BtnCalltoSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:text="CallSubActivity" />
</RelativeLayout>
메인에서 호출할 서브쪽 레이아웃 소스코드
subactivity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sub activity" >
</TextView>
<Button
android:id="@+id/BtnCalltoMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Call main Activity" />
</LinearLayout>
메인쪽 버튼과 화면 작동을 담당할 자바 코드
MainActivity.java
package com.exam;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnCallMain = (Button) findViewById(R.id.BtnCalltoSub);
btnCallMain.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
Log.i("onClick", "CallSubActivity");
Intent intentSubActivity =
new Intent(MainActivity.this, SubActivity.class);
startActivity(intentSubActivity);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
버튼을 누르면 서브액티비티로 연결됩니다.
서로 전환 가능합니다.
'스타의 도서관 > 안드로이드 개발' 카테고리의 다른 글
안드로이드 기초 강좌(radio group, check box, 응용 과정) - 5/23 (0) | 2013.05.23 |
---|---|
안드로이드 기초 강좌(linear layout, frame layout, relative layout, table layout, tab layout, textview, edittext) - 5/22 (0) | 2013.05.22 |
안드로이드 이클립스로 svn 공유받기 (2) | 2013.05.22 |
안드로이드 이클립스로 svn 공유하기 (2) | 2013.05.21 |
안드로이드 이클립스 마켓 설치하기 (0) | 2013.05.21 |