幸福なプログラマ

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

Vagrant upでのエラー

Vagrant upしたときに Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please ve…

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…

gitでリモートからブランチをチェックアウトするまでの流れ

git

空のディレクトリで始める手順です。 初期化 git init リモート名を指定してリモートリポジトリにアクセスできるよう設定 git remote add リモート名 リモートリポジトリのurl リモートリポジトリの変更を取得 git fetch ローカルブランチを作成してリモート…

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 で以下のような子画面が表示されるので、そこで一覧表示・削除・設置等を行うことができる。

罫線のついたtextareaをcssで実現する。

css

ノートみたいな罫線をtextarea内に描画したい場合、以下のようなcssを記述することで実現できます。 textarea { font-size: 15pt; line-height: 31px; padding: 31px; /* テキストエリアに陰をつける */ box-shadow: 0.2em 0.2em 0.5em black; /* 罫線描画(…

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のリビジョンが古いということな…

新人教育に際して気をつけたいこと

先日、devlove名古屋のオブジェクト設計とリーン開発、その実践に参加した際、最後の質疑応答で増田さん(@masuda220 ](https://twitter.com/masuda220))が仰っておられたことが心に残ったので文章に残しておきます。 最後の質疑応答の時間に増田さんに対し…

非同期処理にはThreadを直接使わずにExecutorServiceを使用する

一個前の記事 で MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); みたいな感じでThreadクラスのコンストラクタにRunnable実装したサブクラスを渡して非同期処理をしようと書いたけれど、以下の観点からお…

Threadクラスの継承ではなく、Runnableインタフェースを実装したクラスに処理を委譲する

javaで非同期処理を実現する際、以下のようにThreadクラスを継承したサブクラスを作成し public class MyThread extends Thread { @Override public void run() { // 非同期処理 } } 下記のように呼び出すと思います。 MyThread thread = new MyThread(); th…

javaのenumで要素数を取得する

enum Sample { ONE, TWO; } private int getSampleLength() { return Sample.values().length; } values()でenum型の配列が取得できるので、lengthを呼べば配列の要素数を取得できる。

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>…

ノンデザイナーズ・デザインブック 4つの基本原則

デザインの4つの原則 上手なデザインに共通して見つけることができる4つの基本原則の概要を示す。 1.近接 関連する項目は近づけてグループ化する。いくつかの項目が互いに近接しているとき、それらは1つの視覚的ユニットとして認識される。 これにより情…

Mac OS X のDock風の表現をcssで実現する

css

やりたいこと できあがったもの コード <section id="dock"> <img src="http://f.st-hatena.com/images/fotolife/j/javabayashi/20140503/20140503131045.jpg?1399090451" /> <img src="http://f.st-hatena.com/images/fotolife/j/javabayashi/20140503/20140503131045.jpg?1399090451" /> </section>

floatでいろいろ寄せる

css

左に寄せる こんな感じで見出しを左に寄せたいときは、cssでfloat:leftの設定を行う。 同様にfloat:rightを設定すれば見出しは右に寄ります。 h1 { float:left; } floatプロパティによる流し込みを解除する float: both; 画像を並べて表示する 先行するフロ…

拡張forをIterable#forEachで置き換える

java5で導入された拡張forのおかげでListから要素を取り出す際の記述を簡潔に行えるようになりましたが、java8でIterableインタフェースに追加されたfoEachメソッドを使用することで更に簡潔に記述できます。 リストから文字列を一つづつ取り出して表示する…