Android ViewStubを用いたapiキーの切り替え

先日の記事、「Android ApiキーをRelease版とDebug版で切り替える方法」にてコード内でリリースキーとデバックキーの切り替え方法を記載したが、ViewStubを用いることで、MapViewの生成をコード内から追い出す事が可能になる。

簡単な画面であればコード内でMapViewを生成してしまっても問題はないが、個人的にはlayoutファイル内に入れるのが好きなのでViewStubによるapiキーの切り離しを行った。

ViewStubの使用方法

Android SDKのViewStubの説明ページに総て書いてあるので特に説明をする事はないのでソースコードのみ記載する。

ViewStub stub = (ViewStub) findViewById(R.id.mapview_stub);if(isDebugAble(this)){Log.v("debug");stub.setLayoutResource(R.layout.mapview_debug);}else{Log.v("release");stub.setLayoutResource(R.layout.mapview_release);}View inflated = stub.inflate();mMapView = (MapView)inflated;

layoutファイル

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/mainlayout"android:layout_width="fill_parent"android:layout_height="fill_parent"><ViewStubandroid:id="@+id/mapview_stub"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>

上記のViewStubと入れ替わる2つのレイアウトファイルを用意する。

デバック用
<com.google.android.maps.MapViewandroid:id="@+id/mapview"android:apiKey="hogehoge Debug api key"android:layout_width="fill_parent"android:layout_height="fill_parent"android:enabled="true"android:clickable="true"/>
リリース用
<com.google.android.maps.MapViewandroid:id="@+id/mapview"android:apiKey="@string/mapkey"android:apiKey="hogehoge Release apiKey"android:layout_width="fill_parent"android:layout_height="fill_parent"android:enabled="true"android:clickable="true"/>

ちなみに、このViewStubは、他にもいろいろと使い道がある。

ブログ内の関連する記事


コメント

このブログの人気の投稿

島へ移住の話【炊飯】

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

情報処理安全確保支援士登録証のカード型が届きました。