幸福なプログラマ

プログラマは幸福になれる。

android

Navigation Architecture Component を使えるようにする

Google I/O 2018 でAndroid Studioの新機能、Navigation Architecture Componentが発表されました。 どうやらXcodeで言うところのStoryBoardのようなものらしいです。iOS開発をしたことがないので一つもピンときていません。 とりあえず、Navigation Archite…

Picassoでエラーの詳細を取得する

Picassoでエラー発生時のコールバックを取得するとき Picasso.with(context).load(URL).into(ImageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { } }); こんな感じに書くことができるけど、これだとエラ…

Android Studioでドキュメントが自動的にポップアップしないようにする。

マウスカーソルが当たっているコードのドキュメントが勝手にポップアップするやつ、イライラするから消したい。 Preferences Editor>General>Code Complete内のAutopopup documentation in (ms)のチェックを外す 平穏。

ユーザ切り替えインテントを取得する

Android 5.0(lollipop)からマルチユーザに対応しました。(タブレットは4.2から) ユーザ切り替えが発生した際のインテントの取得したい場合、以下のように記述します。 class UserSwitchReceiver extends BroadcastReceiver { @Override public void onRece…

ViewのVisibleが変化した際に起動するイベントリスナを作る。

1.イベントリスナをセットしたいViewを継承した独自Viewクラスを作成する。 public class MyTextView extends TextView { public MyTextView(Context context) { super(context, null); } } 2.イベントリスナのインタフェース・メンバ変数・セットメソッドを…

Android StudioでBreakpointの一覧表示

Android Studioで、設置したBreakpointの一覧を確認したい場合 ctrl+shift+F8 で以下のような子画面が表示されるので、そこで一覧表示・削除・設置等を行うことができる。

Android StudioでUpperCase・LowerCaseのショートカット

ctrl + shift + u

1箇所だけ角丸のViewを作る

角丸のViewを作りたい場合は、以下のようなxmlを用意して対象のViewのBackgrounに指定することで実現できます。 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#fff" > </solid> <corners android:radius="30dp" /> </shape> それを↑の画…

ActionBarからアイコンを消す

AndroidのActionBarからアプリアイコンを消したい場合は、独自に定義したstylesに以下の1行を加えます。 <resources> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- ↓コレ --> <item name="android:icon">@android:color/transparent</item> </style> </resources> こうすることで以下のようにActionBarのアイコンが表示されなくな…

Android Studioで全文検索

Android Studioで全文検索したいときは Edit→Find→Find in path を選択して出てきた子画面のText to findにキーワードを入れてFindボタン押下で実行できます。 Optionsの意味は↓みたいな感じ。 名前 意味 Case sensitive 大文字と小文字を区別して検索。 Who…

Android Studioのバージョンを0.6.0に上げたときに出るエラーの対処法

Android Studioのバージョンを0.6.0に上げた際、既存のプロジェクトで以下のようなエラーが出ました。 Error:The SDK Build Tools revision (19.0.3) is too low for project ':app'. Minimum required is 19.1.0 Android SDKのリビジョンが古いということな…

AndroidでSQLiteを使用する

データ定義 AndroidでSQLLiteを扱うにはSQLiteDatabaseクラスを使用します。 このSQLiteDatabaseのインスタンス生成を簡略化してくれるのがSQLiteOpenHelperです。 SQLiteOpenHelperは抽象クラスであり、DBオープン時、テーブルのバージョンアップ時の実装を…

Android4.1以下でRelativeLayout.LayoutParamsの相対位置指定を動的に削除したい

RelativeLayoutの相対位置をプログラム中で動的に削除する際RelativeLayout.LayoutParams#removeRuleを使いたいのだけれどAPIレベルが16以下の場合実装されていないため使うことができない。(NoSuchMethodErrorが発生する。) RelativeLayout.LayoutParams …

Androidで振動の実装

AndroidManifestに設定を追加して <uses-permission android:name="android.permission.VIBRATE"/> 以下の1行を書くだけ。 ((Vibrator)getSystemService(VIBRATOR_SERVICE)).vibrate(100); vibrateの引数にミリ秒を渡すことでその時間だけ振動を続けます。 これで震えなかったら当該端末がVibratorに対応していないという</uses-permission>…