投稿

2015の投稿を表示しています

[Qiita] FragmentのonAttach(Context context)が呼ばれない

※この記事は以前Qiitaに投稿されていた古い記事です はじめに FragmentのonAttach(Context context)メソッドを使うときに、少しハマったのでメモ。 onAttach(Activity activity)とonAttach(Context context) API Level 23より前では、onAttach(Activity activity)を使っていたのですが、このメソッドはAPI Level 23で非推奨になりました。 これの代わりにonAttach(Context context)というメソッドが登場したので、API Level 23以上ではこれを使うことになります。 Support LibraryのFragmentの場合 android.support.v4.app.Fragmentを継承しているFragmentの場合、onAttach(Context context)が実装されているので、以下のようにOverrideしても問題無く呼ばれます。 @Override public void onAttach ( Context context ) { super . onAttach ( context ) ; } 普通のFragmentの場合 Support LibraryのFragmentで普通に使えていたので、同じようにandroid.preference.PreferenceFragmentでonAttach(Context context)をOverrideしたら、Android 6.0未満の端末では残念ながら呼ばれませんでした。 onAttach(Context context)はAPI Level 23で新しく実装されたメソッドなので当然ですね。 PreferenceFragmentがSupport LibraryのFragmentを継承しているものではないことを忘れていたので、少し悩んでしまいました。 結論、普通のFragmentの場合は Android 6.0以上だと、どっちも呼ばれますが、 onAttach(Context context) onAttach(Activity activity) Android 6.0未満だと以前のonAttach...

[Qiita] AndroidのGoogle Analytics SDKをv2からv4に移行する

※この記事は以前Qiitaに投稿されていた古い記事です はじめに 今自分が触っているアプリのAndroidのGoogle Analytics SDKをv2からv4に上げることにしたのですが、v2とv4ではパッケージ名も使い方も違っていて少し調べる必要があったので、移行したときに何を変更したのかメモとして書いておきます。 まぁ、v2はかなり古いSDKなので、未だにこれを使っている人はあんまりいないとは思いますが。。 古いjarを消し去る 今まで使っていたGoogle Analytics SDK v2のjarは不要なので、最初に消し去ります。 アプリのbuild.gradleにGoogle Play Servicesを追記 Google Analytics SDKはGoogle Play Servicesの中に入っているので、build.gradleにGoogle Play Servicesを追記します。 Google Play Servicesのバージョンは、なるべく最新のものを使ったほうが良いと思います。 compile 'com.google.android.gms:play-services:8.3.0' importする コードを書けばAndroid Studioが自動でimportしてくれるとは思いますが、一応書いておきます。 v2とv4でパッケージ名が変わってました。 import com . google . analytics . tracking . android . GoogleAnalytics ; import com . google . analytics . tracking . android . Tracker ; import com . google . android . gms . analytics . GoogleAnalytics ; import com . google . android . gms . analytics . HitBuilders ; import com . google . android . gms . analytics . Tracker ; インスタンスの取得 インスタンスの取得はgetTrackerをnewTra...

[Qiita] AppCompatのAlertDialogのテーマカラーを変える

イメージ
※この記事は以前Qiitaに投稿されていた古い記事です はじめに Android Supoprt Library 22.1で公開された android.support.v7.app.AlertDialogを使うと、Material Designなダイアログを簡単に実装することができますが、そのダイアログのタイトルの文字色やダイアログの背景色を変えるにはどうすれば良いのか、メモとして書いておきます。 style.xmlでカラーを定義 < style name = " MyAlertDialogStyle " parent = " Theme.AppCompat.Light.Dialog.Alert " > <item name= "colorAccent" >@ android : color/holo_blue_dark</item> <item name= "android:background" >@ android : color/white</item> <item name= "android:textColorPrimary" >@ android : color/holo_blue_light</item> </ style > name どこの色 colorAccent ボタンの文字色とか android:background ダイアログの背景色 android:textColorPrimary タイトル、メッセージの文字色 AlertDialog.BuilderでStyleをセットする AlertDialog . Builder builder = new AlertDialog . Builder ( this , R . style . MyAlertDialogStyle ) ; builder . setTitle ( "確認" ) ; builder . setMessage ( "ほんとにいいの?" ) ; ...

【Androidアプリ開発】AndroidでのOAuth認証が簡単に実装できるOAuthHelperを作ってみた

イメージ
もうほぼタイトル通りなのですが、AndroidでのOAuth認証と、OAuth認証で取得したAuthTokenの使い方を理解するのにとても苦労したので、OAuth認証が簡単に実装できるOAuthHelperというクラスを作ってみました。ソースコードは以下のGitHubに公開しています。 syarihu/OAuthHelperSample https://github.com/syarihu/OAuthHelperSample OAuthHelperとは このOAuthHelperは、自分が使いたいGoogle APIのScopeをインスタンス生成時の引数に渡して認証処理を開始するメソッドを実行することで、後は自動でアカウントの選択、認証許可確認、AuthTokenの取得までを行います。なので、これを使えばAuthTokenが返ってきた後のGoogle APIの処理を書くだけで良くなるので、認証部分を書く手間が省けます。 使い方 これを使うためには、少しだけ準備をする必要があります。 以下にその準備から実装までの手順を記載します。 Google API Consoleで今回利用したいGoogle APIを有効にする 当たり前の話なのですが、Google APIを利用するためにはそのAPIを有効にする必要があります。なので、以下のURLからプロジェクトを作成し、利用したいAPIを有効にします。 https://console.developers.google.com/ Google API ConsoleでOAuthのクライアントIDを作成する AndroidアプリでのOAuth認証では、クライアントキーなどは必要ありませんが、あらかじめGoogle APIを利用するアプリのパッケージ名と署名証明書フィンガープリントを登録しておく必要があります。 これらの登録は、Google API Consoleでプロジェクトを選択し、左側にある「APIと認証」の「認証情報」をクリックし、「新しいクライアントIDを作成」ボタンを押すことで、登録することができます。 クライアントIDの作成画面はこんな感じです。 AndroidManifestに必要なパーミッションを追加する ようやく実際のソースコードの話になります。OAuth認証...