Android

AccountManagerでアカウントを管理する

はじめに AccountManagerにおいて、アカウントの管理やトークンの取得を直接行うクラスのことをAuthenticatorと呼びます。 それにあわせて、この記事ではAuthenticatorを実装したアプリのことをAuthenticatorアプリと呼ぶことにします。 Authenticatorアプリ…

AccountManagerを利用する

AccountManagerとは AccountManagerとは、Androidにおいて様々なWebサービスのアカウントを管理するための仕組みのことです。 アプリはAccountManagerを利用することで以下のような様々なことができるようになります。 アカウント情報の取得 アカウントの編…

ActionBarのメニューにCheckBoxを表示する

前置き ActionBarでは、メニューをすべて表示することができなかったり"showAsAction="never"を設定したメニューがある場合、一部のメニューをActionBar右端のドロップダウンに格納することがあります。 Andorid Developersではこの機能をAction Overflowと…

トグルボタンの実装

トグルボタンとは トグルボタンとは、ユーザが2つの状態(On/Off)を交互に切り替えることのできるUIです。 AndroidではToggleButtonやCheckBoxがこれに当たります。 API Level 14でON/OFFをわかりやすく切り替えるためのViewとしてSwitchが追加されました。 h…

<uses-permission>設定の罠

<uses-permission> Androidアプリが特定の機能を利用する場合、AndroidManifest.xmlにその機能の一覧を<uses-permission>として記述します。 たとえば、マイクによる録音を行うアプリの場合、以下の様な記述が必要となります。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.nein37.kanidaisuki" > </manifest></uses-permission></uses-permission>

AndroidのUtilsクラスまとめ

はじめに androidのUtilsをまとめた資料が見当たらなかったので作りました。 android.*パッケージに含まれるものだけまとめています。 TextUtils 文字列操作用Utils。 isEmpty()とかequals()とかよく使う。 文字列操作系も大体揃っていて便利。 isGraphic()…

Androidに最適化されたJavaクラス一覧

はじめに Androidではモバイル端末での処理に最適化されたいくつかの代替クラスが用意されています。 ほとんどがHashMap関係のメモリ消費を抑えるためのものですが、Android Developersにも代替クラスをまとめたページはないようなので、知っている範囲でま…

xmlns:toolsでAndroid Studioのレイアウトエディタを活用する

xmlns:tools? Androidのレイアウトファイルに以下のような記述が含まれていることがあります。

レイアウトの余白を埋める

余白を埋める 開発中、ViewとViewの間に余白を設けたい場合があります。 通常はmarginやdividerで調整しますが、間に余白のためのViewを置く場合もあると思います。 実はAndroidには、余白調整のためのSpaceというViewが存在しているのです。 Space SpaceはA…

Upボタンの実装メモ

はじめに Upボタンの実装サンプルとかあまり詳しく書いてないので自分が実装したときのメモをまとめた。 正確性にあまり自信がない。 Upボタン ActionBarの左端にはUpボタンと呼ばれる上位画面へ遷移するための機能がある。 ナビゲーションバーのBackボタン…

安全にファイルを操作する

AtomicFile API level 17からファイルを安全に操作するための仕組みとしてAtomicFileが導入された。 これは書き込み開始時に元ファイルをバックアップし、失敗時にはロールバックすることでファイルの破損を防ぐ仕組みだ。 SupportLibraryにもr11から追加さ…

マルチペインレイアウトを簡単に実装する方法

はじめに マルチペインレイアウトについての説明は省略する。 http://developer.android.com/design/patterns/multi-pane-layouts.html マルチペインレイアウトのうち、左側ペインがリスト・右側ペインが詳細になっているものをMaster/Detailパターンと呼ぶ…

スリープ時にもBroadcastを処理する方法

スリープとBroadcast 端末がスリープ状態の場合でもBroadcastReceiver.onReceive()の呼び出しは通常どおり行われる。 ただし、onReceive()からServiceを呼び出して処理させる場合、その処理が中断されてしまう可能性がある。 確実にバックグラウンド処理を行…

BroadcastReceiverの処理結果を受け取る方法

BroadcastReceiverの処理結果が取れる? ある日、BroadcastReceiver.setResult()があることに気がついた。 ずっとBroadcastの結果は取れないものだと思っていたが、Context.sendOrderedBroadcast()を使用することでその結果を受け取ることができるようだ。 …

PopupWindowで画面内にダイアログ風の表示をする方法

Dialogの実装は面倒 AndroidのDialog実装は割りと面倒くさい。 API level 13でshowDialogが非推奨となってからはDialogFragmentを使うのが一般的になったためだ。 DialogFragmentを使うとコールバックや非同期処理に気を使わなくてはいけないため、どうして…

ActionBarの共有ボタンに共有履歴を表示する方法

ShareActionProvider ICS以降、ActionBarに共有MenuItemを置く際、共有履歴を表示することができるようになった。 ShareActionProviderはその実装のための仕組みとして導入された。 実装 まず、menu定義に共有MenuItemを定義する。 このとき、android:action…

SwipeRefreshLayout覚え書き

SwipeRefreshLayout Support Library revision 19.1.0からSwipeRefreshLayoutという新しいViewGroupが追加された。 これはいままで引っ張って更新とかPullToRefreshとか呼ばれていた機能を実装できるものになる。 以後長々と書くが、公式サンプルのほうがわ…

Fragment使用時のIllegalStateException回避

前置き このページの内容はstackoverflowの素晴らしい回答を参考にしている。 IllegalStateException? Fragmentを使っていると、画面遷移の際に以下の様が例外が発生することがある。 java.lang.IllegalStateException: Can not perform this action after o…