상세 컨텐츠

본문 제목

[안드로이드] 액티비티간 전환 (화면전환)

개발

by 알 수 없는 사용자 2011. 6. 5. 20:16

본문

728x90
728x90


안녕하세요 Yo플레입니다.

오늘은 액티비티간 전환에 대해 알아보겠습니다.

먼저 액티비티는 안드로이드에서 하나의 화면이라고 볼 수 있겠는데요. 그래서 액티비티간 전환은 화면전환이라고 생각하셔도 좋을 것 같습니다.



'전송!' 버튼은 선택하면..



요렇게 ResultView (결과화면)이 나오는 것입니다. 액티비티전환이 되었네요. 하지만 아직 MainView에서 이름과 도시값은 받아오지 못하네요.


방법은 다음과 같습니다.

1. MainView에 버튼 만들기
2. ResultView 만들기

3. AndroidManifest.xml에 액티비티 등록

그럼 따라해 봅시다.

1. MainView에 버튼 만들기
res/layout의 main.xml에 버튼을 추가해 줍니다.


main.xml

<?xml version="1.0" encoding="utf-8"?>

<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:layout_width="fill_parent" 

     android:layout_height="wrap_content" 

     android:text="@string/hello"

    />

    <TextView  

     android:layout_width="fill_parent" 

     android:layout_height="wrap_content" 

     android:text="@string/nameTextMsg"

    />

    <EditText 

     android:id="@+id/editText1"

     android:layout_width="match_parent" 

     android:layout_height="wrap_content" 

     android:text="@string/editTextMsg" 

    />

    <TextView  

     android:layout_width="fill_parent" 

     android:layout_height="wrap_content" 

     android:text="@string/cityTextMsg"

    />

<Spinner

     android:id="@+id/citySpinner"

     android:layout_width="fill_parent" 

     android:layout_height="wrap_content"

     android:prompt="@string/cityChoiceMsg"

    />

    <Button 

     android:text="@string/sendButtonName" 

     android:id="@+id/sendButton" 

     android:layout_height="wrap_content" 

     android:layout_width="match_parent"

    />

</LinearLayout>


MainView의 java파일(저는 AppDevTest 입니다)에 생성한 Button에 대한 명령을 입력해 줍니다.


AppDevTest.java

package CMJ.AppDev001;


import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.Spinner;


public class AppDevTest extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        //Spinner

        Spinner spinner1 = (Spinner) findViewById(R.id.citySpinner);

        ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_item);

        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner1.setAdapter(adapter1);

        

        //Button

        Button btnCall = (Button)findViewById(R.id.sendButton);

        btnCall.setOnClickListener(new Button.OnClickListener() {


public void onClick(View v) {

Intent intent = new Intent(AppDevTest.this, ResultView.class);

startActivity(intent);

}

        });

    }


잊지마세요. ResultView.java는 반드시 Activity를 상속해야 합니다.

2. ResultView 만들기
먼저 res/layout에 result.xml을 만들어줍니다. 여기서 추후 ResultView에서 TextView의 위치 등 디자인을 결정해줍니다.


다음으로 result.xml을 다음과 같이 작성해 줍니다. 디자인(TextView나 Button이 몇 개 들어갈지, 위치 등)은 여기서 결정됩니다.

<?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:text="@string/resultMsg" 

     android:id="@+id/textView1" 

     android:layout_width="wrap_content" 

     android:layout_height="wrap_content"

/>

<TextView 

     android:text="@string/nameResult" 

     android:id="@+id/textView1" 

   android:layout_width="wrap_content" 

      android:layout_height="wrap_content"

/>

<TextView 

     android:text="@string/cityResult" 

     android:id="@+id/textView1" 

     android:layout_width="wrap_content" 

     android:layout_height="wrap_content"

/>

<Button 

android:text="@string/previousButtonName" 

android:id="@+id/previousButton"

android:layout_height="wrap_content" 

android:layout_width="match_parent" 

/>

</LinearLayout>


마지막으로 res/values에서 ResultView화면에서 사용되는 string값들을 설정해줍니다.


strings.xml 입력

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, AppDevTest!</string>

    <string name="app_name">MainView</string>

    <string name="nameTextMsg">이름입력</string>

    <string name="editTextMsg">이름을 입력하세요.</string>

    <string name="cityTextMsg">도시선택</string>

    <string name="cityChoiceMsg">도시선택하기~</string>

    <string name="sendButtonName">전송!</string>

    

    <string name="resultMsg">결과!!</string>

    <string name="nameResult">이름: </string>

    <string name="cityResult">도시: </string>

    <string name="previousButtonName">이전으로</string>

</resources>


3. AndroidManifest.xml에 액티비티 등록
AndroidManifest.xml에 ResultViewActivity를 등록합니다.


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="CMJ.AppDev001"

      android:versionCode="1"

      android:versionName="1.0">



    <application android:icon="@drawable/icon" android:label="@string/app_name">

    

     <!--  MainViewActivity -->

        <activity android:name=".AppDevTest"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        

        <!-- ResultViewActivity  -->

        <activity

         android:name=".ResultView"

         android:label="ResultView"

        />

    </application>

</manifest>

※ 관련소스는 다음에서 확인가능합니다.

이상입니다. 감사합니다.

728x90

관련글 더보기

댓글 영역