備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

2014-01-01から1年間の記事一覧

ListViewの中にButtonを配置すると、ListViewのOnItemClickListenerが呼ばれなくなる問題

通常であれば、ListViewをタップしたときのEventは、OnItemClickListenerを設定してあげると、ハンドリングする事が出来ます。 しかし、ListViewの中にButton等のwidgetを配置した場合、ButtonのOnClickListenerにイベントがブロックされてしまいハンドリン…

androidでsqliteを使用するとき、queryの第4引数の配列にnullが入っていたらIllegalArgumentExceptionでアプリが強制終了する問題

Androidでsqliteを使用する機会があったので実装していたのですが、以下のように実装したときにアプリが強制終了する事がありました。 /* * データを一件取得 */ private ResumeContentsEntity fetch(String where, String[] params) { SQLiteDatabase db = …

FragmentのonSaveInstanceState(Bundle outState)が呼ばれない

複数のFragmentを使用するときに、Fragment1からFragment2に遷移して、再度Fragment1に戻ったときに、Fragment1が再度描画されてしまうので、以前の状態を保持したまま遷移したいと思い、このようにonSaveInstanceStateを実装しました。 @Override publi…

ListViewの高さを固定したいときの注意点

Android開発でListViewの高さを固定したいとき、 android:layout_height="150dp" このように書いても高さが固定されません。 実際には、 android:layout_height="150dp" android:minHeight="150dp" このように、minHeightも指定しなければいけないようです。…

PendingIntentでActivityが起動しない問題

Pending Intentの第二引数に注意 - 備忘録 〜プログラミング〜 上記の記事でPendingIntentは起動するようになったのですが、その起動していたのもつかの間。 またしても起動出来なくなってしまうという現象が起きました。 やはり、問題はPendingIntentの2つ…

Androidプロジェクトで、jarではないAndroidライブラリを導入してgitで管理する

複数人でAndroid開発を進めるときに、外部ライブラリのバージョン違いなどで悩まされる事がありました。 jarファイルであれば、libs直下に入れれば済む話なのですが、リソースファイルなどもある都合上、jarに出来ないライブラリの場合は、個々にダウンロー…

AndroidでパラメータつきURLをstartActivityしたときにパラメータが消えてしまう

APIから取得したURLをWEBで表示させる簡単な作業でハマったのでメモしておきます。 APIから取得したURLは、 http://www.hogehoge/?hoge=hoge&hogehoge=hoge このような感じだったのですが、以下のようにstartActivityをすると?以降のパラメータが消えてしま…

Chromecast実装時に、MediaRouteButtonを使うと落ちる

minSdkVersion9でChromecast対応のアプリを作るとき、ManifestにActivityを記載すると思うのですが、そのManifestに記載するActivityに以下のプロパティを設定しないとアプリが落ちたのでメモ。 android:theme="@style/Theme.AppCompat" 上記プロパティを設…

git diffをvimdiffで見れるように設定する

~/.gitconfigファイルを以下のように変更 [diff] external = git_diff_wrapper [pager] diff = 上記で指定した、git_diff_wrapperファイルをパスの通っている場所に作成 ex) /usr/local/bin #!/bin/sh vimdiff “$2” “$5” 実行権限を付与 $ chmod +x /usr/loc…

Pending Intentの第二引数に注意

AndroidでPush通知を実装するときに、通知をタップしたときにActivityを呼ぶという実装をしたのですが、タップしてもActivityが起動しないという事が起きたのでメモしておきます。 Intent intent = new Intent(context, MainActivity.class); PendingIntent …

AlertDialog.BuilderでBadTokenException

DialogFragmentをカスタマイズするときに、BadTokenExceptionが出たのでメモ。 まず、AlertDialogを出すために、こんな感じでAlertDialigを生成しました private Context mContext; @Override protected void onCreate(Bundle savedInstanceState){ super.on…

Android開発でForegroundか、Backgroundかを検知する

Push通知を実装するときに、Foregroundのときはステータスバーに通知を表示。 Backgroundのときには、DialogFragmentで表示という実装をしたかったときのメモ。 まず、Foreground、Backgroundという事をandroidで検知する事が、出来るのか、、、 調べること…

Androidでmkdirを実行してみる

プログラミング内でフォルダを作りたいと思ったときに少しハマったのでメモ。 まず、最初はこんな感じでフォルダを作ろうとしていました File dir = new File("/storage/sdcard1/{プロジェクトパッケージ}/{フォルダ名}"); if(!dir.exists()){ boolean resul…

ListPreferenceをタップしたときのアクション

ListPreferenceをタップしたときにダイアログを出さない方法はないものかと色々調べたのでメモ。 ListPreferenceには、onPreferenceClickというクリックをしたら呼び出されるリスナーがあるのですが、これの戻り値をfalseにしてもtrueにしても、ダイアログが…

SDカードがマウントされているのに、getExternalFilesDirsで取得出来ない

Android API Level19から、ContextクラスにgetExternalFilesDirsが実装されて、外部SDカードのパスが取得出来るようになったみたいです。 ただ、NECのLavieTab(4.4.2)では、なぜか内部ストレージのみしか取得が出来ませんでした。 SDカードは、しっかりとマ…

Android SDK Managerでシステムイメージをインストールで容量が圧迫された

android 5.0 SDKがリリースされたので、SDK ManagerからSDKをインストールしたら、いきなり お使いの起動ディスクはほとんど一杯です と出るようになってしまいました。 色々SDKをインストールしていたので、それのせいかなと思い調査。 ターミナルを開いて…

HAX is not working

仕事でandroidを担当する事になったのですが、今までiosばかりだったので簡単なところでハマってしまう。 今日も高速エミュレーターを使おうと思ってハマったのでメモ。 簡単に言うと、Intel Atom (x86) Android エミュレータを試用する。 まず最初にEclipse…

iosでGoogleCast.frameworkを使ってみる

IOS

以下から、フレームワークをダウンロード Google Cast Downloads - Google Cast — Google Developers その後、 project > TARGETS > Build Phasesタブ > Link Binary With Libraries から、GoogleCast.frameworkを追加する。 その後は、これを参考にしてコー…

Swiftを使ってSpriteKitを試してみる

Swiftに慣れるために、SwiftでSpriteKitを使ってみました。 基本的にはObjective-cと同じ。 SKPhysicsBodyのプロパティのrestitution(反発係数)と、linearDamping(減衰率)を色々いじると跳ね返りが変化するので色々面白いです。 katabuchi/SpriteTest katabu…

SwiftでCGFloatをNSLogしたら、0.000000になってしまう問題

Swiftで、LaunchScreen.xibなしでプロジェクトを作るとどうなるのか試してみると、どのデバイスでも3.5インチになってしまいました。 そこで、以下のようにNSLogで高さの値がどうなっているのか確認 NSLog("%f", UIScreen.mainScreen().bounds.size.height) …

play frameworkでCannot connect to database [default]エラー

mysqlをアンインストールして再インストール後、play frameworkでrunしたときに、データベースに接続出来ないエラーが発生しました。 application.confのDB設定はこんな感じ db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://localhos…

Swiftで#pragma mark -

Objective-cのときはコードを見やすくするために #pragma mark - などをよく使っていたので、Swiftでも出来るのかなと思い調べてみたところ、ありました。 こんな感じ // MARK: - 他にも色々あるみたいです。 // TODO: // FIXME: <a href="http://stackov…

iTunesConnectでアプリ申請時に無効のバイナリで申請出来ない

IOS

iTunes Connectのサイトがリニューアルしてからアプリの再申請しようとしたときにハマったときのメモです。 1.XcodeでArchive → Validate -> Submit 2.iTunes Connect、ビルドの欄からバイナリを選択 3.追加されたレーティングの項目に答えて、保存 4.レビュ…

Metal.framework

IOS

ios8から新しく追加されたMetal.frameworkを使ってみたくて色々調べたのですが、シュミレーターでは実行出来ないようですね。 残念。。 <a href="http://stackoverflow.com/questions/24145101/quartzcore-cametallayer-h-file-not-found" data-mce-href="http://stackoverflow.com/questions/24145101/quartzcore-cametallayer-h-file-not-found">QuartzCore/CAMetalLayer.h file…</a>

Homebrewで has multiple installed versionsエラー

自宅のMacのOSをバージョンアップしたら、Homebrewでインストールしたplay frameworkやらandroid-sdkのリンクが切れていて使えなくなったのでリンクを張り直しました。 こんな感じで、まずはリンクを外す $ brew list | xargs brew unlink しかし、ここでエ…

Swiftで初期画面をコードから作成してみた

今更ながらSwiftを触ってみました。 慣れ次第だとは思いますが、書きやすいような、書きにくいような。 とりあえず、初期画面はこれでいけました。 AppDelegate.swift var window: UIWindow? var viewController: UIViewController? func application(applic…

MavericksへのアップデートでHomebrewで導入したモジュールのシンボリックリンクが消える

どうやら、Mavericksにアップデートしたら、 リンクが消えてしまうようですね。 それでコマンドが使えなくなっていたのかー。 解決して安心しました。 $ brew list | xargs brew unlink $ brew list | xargs brew link これでOK &lt;a href="http://itexp.ha…

JAVA8の環境下では、Scala 2.10.xは動かない

OS XをMavericksにバージョンアップしたら、パスやら何やらが色々変わったりでJDKの再インストールも必要になり最新のJDKをインストールして、play frameworkを起動しようとしたら、エラーが出ました。 JAVA8では、動かないようです、、 Compilation failed:…

ios8でのUITableViewCellのボーダー

IOS

ios7のときには正常に、端っこまでボーダーが表示されていたのですが、ios8では表示されない現象が起きましたが、同じように困っている人がいて解決しました。 iOS 8 setting setSeparatorInset to Zero uitableview - iOS 8 setting setSeparatorInset to Z…

UIViewControllerのloadViewメソッド

IOS

UIViewControllerにカスタムビューをセットするときは、いつも以下のようにviewDidLoadでセットしていたのですが、loadViewというメソッドがあるという事に気付いて調べてみました。 -(void)viewDidLoad { [super viewDidLoad]; UIView *customView = [[UIVi…