Search

Android google Map v2

Programming/Android 2013. 4. 27. 13:46 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.






2012년 12월 4일, Google Play Services가 업데이트되면서 새 버전의 안드로이드용 API가 공개되었습니다.

주요 변경사항은 다음과 같습니다.


  • MapFragment 지원으로 다양한 해상도의 단말 지원 용이 (MapActivity가 아닌 일반 액티비티에서도 MapView 사용가능)
  • 3D맵 지원
  • 한층 편리해진 마커 사용법

이와 함께, 구글맵 API를 사용하기 위한 인증 및 사용 절차가 다소 변경되었습니다. 이 포스트에서는 새로운 구글맵 API를 사용하는 방법에 대해 자세히 알아보도록 하겠습니다.


구글맵 API를 사용하기 위한 단계를 간략히 요약하면 다음과 같습니다.


1. Android SDK Manager를 통해 Google Play Services SDK 다운로드 (Rev.3 이상)

2. 새 프로젝트 생성 및 구글맵 라이브러리 프로젝트를 Workspace로 가져오기

3. 구글맵 인증키(API Key) 획득에 필요한 keystore/key fingerprint 획득

4. 구글맵 인증키 발급

5. 구글맵을 사용할 프로젝트의 매니페스트 설정

6. 레이아웃에 구글맵 추가하기



1. Google Play Services SDK 다운로드


Android SDK Manager를 실행한 후, 아래의 Extra 카테고리에서 Google Play Services 패키지를 설치합니다.

Revision(Rev.) 3 이상이여야 하며, 설치가 완료되면 다음과 같이 Installed로 표시됩니다.




2. 새 프로젝트 생성 및 구글맵 라이브러리 프로젝트 가져오기


기존의 구글맵 라이브러리가 시스템 이미지(Android X.X / Google APis로 구분)에 포함되어 있었던 것과 달리, 이번 버전부터는 별도의 라이브러리 프로젝트로 제공됩니다. 때문에 이를 사용하려면 이클립스 내 자신의 Workspace로 구글맵 라이브러리 프로젝트를 불러와야 합니다.


이클립스의 메뉴에서 File > New > Other...를 선택한 후, Android Project from Existing Code를 선택합니다.




다음, Root Directory에 구글맵 라이브러리 프로젝트가 있는 폴더를 지정해줍니다. 구글맵 라이브러리 프로젝트는 다음 경로에 저장되어 있습니다.


[안드로이드 SDK경로]/extras/google/google/google_play_services/libproject/google-play-services_lib


여러 사람과 함께 작업해야 하는 프로젝트일 경우, 라이브러리 프로젝트를 참조할 때 Workspace에 상대적인 경로를 사용하여 참조하도록 해야 하므로 Copy project into workspace에 체크해줍니다. 




다음과 같이 Workspace에 Google Play Services 라이브러리 프로젝트가 추가됩니다.




이제 새 프로젝트를 생성한 후, 위에서 추가한 라이브러리 프로젝트를 참조하도록 설정할 차례입니다. 프로젝트를 생성한 후, 프로젝트 속성 창(프로젝트 이름 오른쪽클릭 - Properties)을 열어 왼쪽 탭에서 'Android' 항목을 선택한 후 우측 하단의 'Library' 영역에서 'Add...' 버튼을 눌러 google-play-services_lib를 선택합니다.




다음과 같이 표시되면 제대로 설정된 것입니다.


이것으로 기본적인 프로젝트 설정은 끝났습니다.


3. 구글맵 인증키 발급에 필요한 keystore/key fingerprint 획득


구글맵을 사용하려면 인증키(API Key)를 발급받아야 합니다. 애플리케이션 패키지 (*.apk)생성시 사용하는 서명 정보(key)를 사용하여 인증을 수행하게 되며, 버전1에서는 MD5 지문을 사용했는데 이번 버전부터는 SHA1 지문을 사용하도록 변경되었습니다.


용어정리


애플리케이션 서명 : 

애플리케이션을 배포할 때, 개발자는 애플리케이션을 패키지(*.apk) 형태로 만들게 됩니다. 이 때, 이 패키지를 '누가' 패키징했는지 정보를 기록하게 되는데, 이를 '애플리케이션 서명' 이라 합니다. 이는 애플리케이션이 배포된 이후 악의적인 목적으로 리패키징(애플리케이션 내용물을 변조한 후 다시 패키징하는 것)했을 때, 이를 원본과 구분하기 위해 사용합니다.


keystore/key : 

애플리케이션 서명을 위해 사용하는 수단으로, 자신의 '서명' 이라 할 수 있습니다. 서명은 'key'로 하게 되며, keystore는 서명을 할 수 있는 key들을 담을 수 있는 파일을 뜻합니다. 이클립스를 통한 개발시 기본으로 디버그용 키를 사용하여 애플리케이션 패키지를 서명하게 되며, 안드로이드 마켓 등 외부로 애플리케이션을 배포할 때는 자신의 키를 사용하여 서명한 후 배포해야 합니다. (안드로이드 마켓의 경우 최초 애플리케이션 업로드시 사용한 키를 잃어버리면 더 이상 애플리케이션을 업데이트할 수 없습니다)


(MD5/SHA1)지문 : 

각 서명을 고유하게 식별할 수 있는 고유한 문자열로, 문자열을 생성하는 알고리즘에 따라 MD5, SHA1 지문으로 구분됩니다.


이클립스를 통해 개발을 하게되면, 기본값으로 디버그용 키를 통해 애플리케이션 패키지를 서명하게 됩니다. 때문에, 구글맵을 사용하는 애플리케이션을 테스트하려면 배포시 사용할 키 뿐만 아니라 디버그용 키 또한 등록해 주어야 합니다.


먼저, 디버그용 키의 지문을 얻기 위해 디버그용 키가 저장되어 있는 곳으로 이동합니다. 명령 프롬프트/터미널을 실행한 후, 운영체제에 따라 각각 다음의 경로로 이동합니다.


Windows XP : C:\Documents And Settings\[사용자 계정]\.android

Windows Vista/7 : C:\Users\[사용자 계정]\.android

OSX/Linux : ~/.android


다음, 아래의 명령을 입력하여 디버그용 키의 지문을 조회합니다.


keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android


다음과 같이 인증서 지문이 표시됩니다. 여기에서 우리가 필요한 것은 인증 지문 항목 중 SHA1 항목입니다. 이 정보를 복사해둡니다.



4. 구글맵 인증키 발급받기


이제 구글지도 API 키를 발급받기 위해 Google APis Console(https://code.google.com/apis/console/)로 이동합니다. Google APIs Console에서는 프로젝트별로 사용하는 구글 API를 관리할 수 있도록 되어있습니다. 아직 프로젝트가 없다면 왼쪽의 드롭다운 메뉴에서 Create...를 눌러 새 프로젝트를 생성합니다. 저는 'AndroidMapsV2'라는 이름으로 프로젝트를 생성해 보겠습니다.



프로젝트를 생성하면 활성화할 서비스 목록이 표시됩니다. 목록에서 Google Maps Android API v2를 찾아 활성화해줍니다.




다음, 왼쪽 탭에서 API Access를 선택한 후 Simple API Access 항목에 Create new Android key...를 선택합니다.




이제 여기에 이전에 조회한 SHA1 지문과 애플리케이션의 패키지 이름을 다음과 같은 형식에 맞춰 입력합니다. 


[SHA1지문];[애플리케이션 패키지 이름]


여기에서는 com.androidhuman.example.mapsv2example 이라는 애플리케이션에서 구글맵을 사용하도록 하는 것을 가정하여 입력해 보았습니다.




Create 버튼을 누르면 다음과 같이 API Key가 발급됩니다.


5. 구글맵 사용을 위한 매니페스트 설정


매니페스트에서 추가해야 할 항목들은 다음과 같습니다.


- OpenGL 2.0 이상을 지원하는 단말기에서 실행되도록 하기 (Uses feature)

- 애플리케이션의 Meta-data에 구글맵 API Key 추가

- 구글맵의 정상적인 사용을 위한 권한 추가


OpenGL 2.0 이상을 지원하는 단말기에서 실행되도록 하기


이번 버전의 구글맵이 OpenGL 2.0을 사용하게 됨에 따라, 이를 이원하지 않는 단말기에서는 구동할 수 없습니다. 때문에 매니페스트에 이를 지원하는 단말기에서는 설치가 되지 않도록 별도의 설정을 해 주어야 합니다.


AndroidManifest.xml을 연 후, Manifest 탭 하단의 Manifest Extras 영역을 찾아봅니다.




다음, Add...를 눌러 Uses Feature를 선태한 후, 다음과 같이 입력합니다.



Meta data로 구글맵 API 추가하기


매니페스트의 'Application' 탭을 선택한 후, Application Nodes 항목에서 Add...버튼을 누른 후 Meta Data를 선택합니다.

그 다음, Name과 Data에 다음과 같이 입력합니다.


Name : com.google.android.maps.v2.API_KEY

Value : 발급받은 구글맵 API Key




권한 추가하기


구글맵 데이터를 받아오기 위해 필요한 권한을 추가합니다. 먼저, API Key와 연동하여 구글맵 데이터를 받아올 수 있는 권한을 생성하고 추가해야 합니다. 


매니페스트의 'Permission' 탭을 선택한 후, Add...를 선택하여 'Permission'을 선택합니다. Name과 Protection level에 각각 다음을 입력합니다.


Name : [패키지 이름].permission.MAPS_RECEIVE

Protection level : signature


애플리케이션 패키지 이름이 com.androidhuman.example.mapsv2example일 경우 Name 에는 com.androidhuman.example.mapsv2example.permission.MAPS_RECEIVE 를 넣어주면 됩니다.


다음, Add...버튼을 누른 후 이번에는 'Uses Permission'을 선택한 후, Name에 위에서 입력한 권한(패키지이름.permission.MAPS_RECEIVE)을 똑같이 입력해줍니다.


다음, 같은 방식으로 다음의 권한들을 Uses Permission 으로 추가해줍니다.


  • android.permission.INTERNET
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • com.google.android.providers.gsf.permission.READ_GSERVICES



6. 레이아웃에 구글맵 추가하기


이제 레이아웃에 구글맵을 추가할 차례입니다. 이전 버전의 구글맵에서는 구글맵을 표시하려면 MapActivity를 사용해야 했지만, 이번 버전부터는 Fragment 형태로 구글맵이 지원되어 어느 곳에서나 쉽게 구글맵을 사용할 수 있습니다.


프래그먼트 형태로 제공되는 구글맵을 사용하려면 레이아웃에 다음과 같이 선언해주면 됩니다.

01.<?xml version="1.0" encoding="utf-8"?>
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03.android:layout_width="match_parent"
04.android:layout_height="match_parent"
05.android:orientation="vertical" >
06. 
07.<fragment xmlns:android="http://schemas.android.com/apk/res/android"
08.android:id="@+id/map"
09.android:layout_width="match_parent"
10.android:layout_height="match_parent"
11.class="com.google.android.gms.maps.MapFragment" />
12. 
13. 
14.</LinearLayout>


애플리케이션을 실행하면 다음과 같이 지도가 표시되는 것을 확인할 수 있습니다.




강좌에서 사용한 예제 프로젝트 파일을 첨부하였으니 자세한 사항은 프로젝트 파일을 참고하시면 됩니다. ;)

예제 프로젝트를 테스트할 때, API Key를 꼭 자신이 발급받은 것으로 교체하고, 애플리케이션을 Google APIs Console에 등록했는지 확인 후 진행해주세요!



 MapsV2.zip

'Programming > Android' 카테고리의 다른 글

MyLocation Class  (0) 2013.05.04
Android Battery Monitor  (0) 2013.04.29
안드로이드 APK 추출하기  (0) 2013.04.25
Thread 와 Handler 테스트  (0) 2013.04.13
테이블 동적 생성  (0) 2013.03.23

안드로이드 APK 추출하기

Programming/Android 2013. 4. 25. 14:48 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
배포되어있는 어플리케이션의 res 파일

즉, 그림 파일이나 레이아웃 등 res 폴더 내에 있는 파일들을 보고싶다면


1. APK 파일을 추출한다.

원하는 어플을 설치후

Linda FIle Manager 를 설치한다.



https://play.google.com/store/apps/details?id=com.lindaandny.lindamanager&hl=ko



Linda File Manager 의


백업 기능을 이용하여 깔려있는 어플의 apk 파일을 추출해 낼 수 있다.


백업할 어플에 Long Click 을 하면 Backup 메뉴가 뜨고 


Backup 을 클릭할 시


Toast 메세지로 저장된 경로가 뜬다.


2. 해당 APK 파일을 컴퓨터로 옮긴다.


3. APK 파일을


7-Zip


http://www.7-zip.org/


을 이용해서 압축을 풀면


아래와 같이 res 폴더를 추출해 낼 수 있다.







'Programming > Android' 카테고리의 다른 글

Android Battery Monitor  (0) 2013.04.29
Android google Map v2  (2) 2013.04.27
Thread 와 Handler 테스트  (0) 2013.04.13
테이블 동적 생성  (0) 2013.03.23
TabActivity 사용법  (0) 2013.03.23

RESTLET Point

Programming/JAVA,JSP 2013. 4. 21. 17:22 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
import java.io.IOException;
import java.net.URLDecoder;
 
import org.restlet.Application;
import org.restlet.Request;
import org.restlet.Response;
import org.restlet.Restlet;
import org.restlet.Server;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.ext.xml.DomRepresentation;
import org.restlet.representation.Representation;
import org.restlet.resource.ServerResource;
import org.restlet.routing.Router;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
 
public class RESTRouteService extends Application {
    public static void main(String[] args) throws Exception {
        // Create the HTTP server and listen on port 8182
        Server server = new Server(Protocol.HTTP, 8182);
        server.setNext(new RESTRouteService());
        server.start();
    }
 
    public Restlet restlet1 = new Restlet() {
        public void handle(Request request, Response response) {
           String message = "This is a information for students";
           response.setEntity(message, MediaType.TEXT_PLAIN);
        }
    };
 
    public Restlet restlet2 = new Restlet() {
        public void handle(Request request, Response response) {
           String message = "_ 1/students/1_ 2/students/2";
           response.setEntity(message, MediaType.TEXT_XML);
        }
    };
    public Restlet restlet3 = new Restlet() {
        public void handle(Request request, Response response) {
           String message = "_  1Jun-Ha Jung
Seoul
_
"; response.setEntity(message, MediaType.TEXT_XML); } }; Restlet order = new Restlet(getContext()) { @Override public void handle(Request request, Response response) { // Print the user name of the requested orders String p1 = (String)request.getAttributes().get("p1"); String p2 = (String)request.getAttributes().get("p2"); String sum = "" + (new Integer(p1) + new Integer(p2)); String message = "p1 \"" + p1 + "\" p2 \"" + p2 + "\" sum \"" + sum + "\"" ; response.setEntity(message, MediaType.TEXT_PLAIN); } }; @Override public Restlet createInboundRoot() { Router router = new Router(); router.attach("http://localhost:8182/info", restlet1); router.attach("http://localhost:8182/students", restlet2); router.attach("http://localhost:8182/students/1", restlet3); router.attach("http://localhost:8182/Point/{p1}/{p2}", order); return router; } }
org.reslet.ext.xml 추가

'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA 코드 그럴듯 하게 보이게 하기?!  (1) 2013.04.27
restlet download restlet-jse-2.1.2  (0) 2013.04.27
RESTlet HelloWorld  (0) 2013.04.21
JAVA 로 Word 문서 만들기  (0) 2013.03.29
JAVA 선택정렬  (0) 2013.03.03

RESTlet HelloWorld

Programming/JAVA,JSP 2013. 4. 21. 16:53 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. RESTLET 설치


http://restlet.org/download/current#release=stable&edition=jse&distribution=zip



restlet-jse-2.1.2.vol1.egg


restlet-jse-2.1.2.vol2.egg


restlet-jse-2.1.2.vol3.egg


restlet-jse-2.1.2.vol4.egg


restlet-jse-2.1.2.vol5.egg


2. RESTLET 라이브러리 설정


해당 프로젝트 - [우클릭] - [Properties] - [JAVA Build Path]


[Libraries] - [Add External JARs] - restlet 압출 파일해제한 폴더로 이동


org.restlet.jar 파일 선택


3. 예제 코드

import org.restlet.Server;
import org.restlet.data.Protocol;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
 
public class RESTletHelloWorld extends ServerResource {
   public static void main(String[] args) throws Exception {  
      new Server(Protocol.HTTP, 8182,
          RESTletHelloWorld.class).start();  
   }  
   @Get 
   public String toString() {
      return "Hello, RESTlet World!123";  
   }  
}
 
 


4. 브라우저를 이용하여


http://localhost:8182 접속

'Programming > JAVA,JSP' 카테고리의 다른 글

restlet download restlet-jse-2.1.2  (0) 2013.04.27
RESTLET Point  (0) 2013.04.21
JAVA 로 Word 문서 만들기  (0) 2013.03.29
JAVA 선택정렬  (0) 2013.03.03
JAVA 삽입 정렬  (0) 2013.03.03

Thread 와 Handler 테스트

Programming/Android 2013. 4. 13. 15:19 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package com.naver.tansanc.test01;

 

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

 

public class MainActivity extends Activity {

 

    public TextView textView;

 

 

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.test01);

        textView = (TextView) findViewById(R.id.textview);

    }

 

    public void mOnClick(View v) {

        if (v.getId() == R.id.button) {

           Toast.makeText(this, "Hello", Toast.LENGTH_SHORT).show();

          countThread ct = new countThread(mHandler);

           ct.start();

        } else if (v.getId() == R.id.button2) {

           Toast.makeText(this, "Hello2", Toast.LENGTH_SHORT).show();

        }

    }

    Handler mHandler = new Handler() {

        public void handleMessage(Message msg) {

           switch (msg.what) {

           case 3:

               textView.setText((String) msg.obj);

           }

        }

    };

}

class countThread extends Thread {

    public void run() {

        super.run();

        int i = 0;

        while (true) {

           Message msg = new Message();

           msg.what = 3;

           msg.obj = (Object) ("Hello " + i);

           mHandler.sendMessage(msg);

           try {

               Thread.sleep(1000);

           } catch (InterruptedException e) {

               // TODO Auto-generated catch block

               e.printStackTrace();

           }

           i++;

        }

 

    }

    Handler mHandler;

    countThread(Handler mHandler) {

        this.mHandler = mHandler;

    }

}



Test01.XML


<?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:id="@+id/textview"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" />

    <Button

        android:id="@+id/button"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="mOnClick"

        android:text="Hello"/>

    <Button

        android:id="@+id/button2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="mOnClick"

        android:text="Hello2"/>

 

</LinearLayout>


'Programming > Android' 카테고리의 다른 글

Android google Map v2  (2) 2013.04.27
안드로이드 APK 추출하기  (0) 2013.04.25
테이블 동적 생성  (0) 2013.03.23
TabActivity 사용법  (0) 2013.03.23
다중 액티비티 예제  (0) 2013.03.23

JAVA 로 Word 문서 만들기

Programming/JAVA,JSP 2013. 3. 29. 22:04 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
http://java2word.blogspot.kr/p/documentation.html

Sample

    

http://java2word.blogspot.com.au/p/all-in-one-example.html



'Programming > JAVA,JSP' 카테고리의 다른 글

RESTLET Point  (0) 2013.04.21
RESTlet HelloWorld  (0) 2013.04.21
JAVA 선택정렬  (0) 2013.03.03
JAVA 삽입 정렬  (0) 2013.03.03
JAVA JTABLE 사용 예제  (0) 2013.03.03

프로그래밍용으로 좋은 폰트

Programming/C,CPP,CS 2013. 3. 23. 20:03 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


BitstreamVeraSansMono.ttf


Bitsream + 맑은고딕




from : http://chan7ee.tistory.com/165

'Programming > C,CPP,CS' 카테고리의 다른 글

C언어 달력 소스코드  (0) 2013.08.02
아스키코드표  (0) 2013.05.02
CPP 토큰으로 단어 구분후 단어별 카운트 프로그램  (0) 2013.01.26
CPP string 줄단위 입력  (0) 2013.01.26
링크드리스트 학생관리  (0) 2013.01.19

테이블 동적 생성

Programming/Android 2013. 3. 23. 20:02 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

public class MainActivity extends Activity {

 

        @Override

        protected void onCreate(Bundle savedInstanceState) {

               super.onCreate(savedInstanceState);

               setContentView(R.layout.activity_main);

 

               /* Find Tablelayout defined in main.xml */

               TableLayout tl = (TableLayout) findViewById(R.id.store_table);

              

               /* Create a new row to be added. */

               for (int i = 0; i < 3; i++) {

                       TableRow tr = new TableRow(this);

                       tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,

                                      LayoutParams.WRAP_CONTENT));

                      

                       /* Create a Button to be the row-content. */

                       Button b = new Button(this);

                       b.setText("Dynamic Button");

                       b.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,

                                      LayoutParams.WRAP_CONTENT));

                      

                       /* Add Button to row. */

                      

                       tr.addView(b);

                       Button c = new Button(this);

                       c.setText("Dynamic Button2");

                       c.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,

                                      LayoutParams.WRAP_CONTENT));

                      

                       /* Add Button to row. */

                       tr.addView(c);

                      

                       /* Add row to TableLayout. */

                       tl.addView(tr, new TableLayout.LayoutParams(

                                      LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

               }

        }

}

'Programming > Android' 카테고리의 다른 글

안드로이드 APK 추출하기  (0) 2013.04.25
Thread 와 Handler 테스트  (0) 2013.04.13
TabActivity 사용법  (0) 2013.03.23
다중 액티비티 예제  (0) 2013.03.23
안드로이드 레이아웃 예제  (0) 2013.03.16

TabActivity 사용법

Programming/Android 2013. 3. 23. 17:25 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MainActivity 


package com.example;

 

import android.app.TabActivity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.widget.TabHost;

 

public class MainActivity extends TabActivity {

 

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.temp);

 

        TabHost tabHost = getTabHost();

        Intent intent = new Intent().setClass(this, temp02Activity.class);

        tabHost.addTab(

               tabHost.newTabSpec("temp01")

               .setIndicator("Temp01")

               .setContent(intent));

        intent = new Intent().setClass(this, temp02Activity.class);

        tabHost.addTab(tabHost.newTabSpec("temp02")

               .setIndicator("Temp01")

               .setContent(intent));

        tabHost.setCurrentTab(0);

    }

 

    public boolean onCreateOptionsMenu(Menu menu) {

        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.menu, menu);

        return true;

    }

}



temp.xml


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

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

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@android:id/tabhost"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

 

 

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:orientation="vertical" >

 

        <TabWidget

            android:id="@android:id/tabs"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content" >

        </TabWidget>

 

        <FrameLayout

            android:id="@android:id/tabcontent"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:padding="5dp" />

    </LinearLayout>

 

</TabHost>

'Programming > Android' 카테고리의 다른 글

Thread 와 Handler 테스트  (0) 2013.04.13
테이블 동적 생성  (0) 2013.03.23
다중 액티비티 예제  (0) 2013.03.23
안드로이드 레이아웃 예제  (0) 2013.03.16
안드로이드 실습  (0) 2013.03.09

다중 액티비티 예제

Programming/Android 2013. 3. 23. 16:11 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

다중 액티비티 예제


MainActivity.java


 

public class MainActivity extends Activity {

 

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.temp);

    }

 

    public void mOnClick(View v)

    {

        Intent intent = new Intent(this, SubActivity.class);

       

        switch(v.getId())

        {

        case R.id.Seoul:

           intent.putExtra("buttonName", "Seoul");

           startActivity(intent);

           break;

        case R.id.Busan:

           intent.putExtra("buttonName", "Busan");

           startActivity(intent);

           break;

        }

    }

 

    public boolean onCreateOptionsMenu(Menu menu) {

        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.menu, menu);

        return true;

    }

}


SubActivity.java


 

public class SubActivity extends Activity{

 

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.temp2);

        Intent intent = getIntent();

        String str = intent.getStringExtra("buttonName");

        if( str != null)

        {

           if( str.equals("Seoul"))

           {

               ImageView imageView = (ImageView)findViewById(R.id.imageView);

               imageView.setImageResource(R.drawable.seoul);

           }

           else if( str.equals("Busan"))

           {

               ImageView imageView = (ImageView)findViewById(R.id.imageView);

               imageView.setImageResource(R.drawable.busan);           

           }

        }

    }

    public void mOnClick(View v)

    {

    }

}



 

'Programming > Android' 카테고리의 다른 글

테이블 동적 생성  (0) 2013.03.23
TabActivity 사용법  (0) 2013.03.23
안드로이드 레이아웃 예제  (0) 2013.03.16
안드로이드 실습  (0) 2013.03.09
Intent 활용하기  (0) 2013.03.08