投稿

11月, 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 ( "ほんとにいいの?" ) ;