Category Archives: ソフト開発

ActionBar Actionボタンアイコンが表示されない問題

Androidの開発でActionBarを使っているのだが、そのActionBarのActionボタン領域のアイコン(ボタン)が表示されない。
XMLデザイン側で、ShowAsActionを設定して、常に表示(Always)を設定しているのだが反映されず、表示されないままになっている。
多分、XMLで設定しているAPIの問題だと思うが解決できないので、プログラム側でShowAsAcitonを設定するようにした。

オプションメニュー生成メソッド(onCreateOptionsMenu)にShowAsAcitonを設定する処理を追加
menu.findItem(R.id.XXX).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

—–参考PG—–
//オプションメニュー生成メソッド
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.xxx, menu);
//XMLでShowAsActionの設定ができないのでPG側で設定 menu.findItem(R.id.xxx).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
}

※連続でやったわけでないが、2日間で6時間以上費やした。原因がわかればなんてことはないがえらく時間くってしまった。ネットや本の参考を見ながらプログラムしたので設定が違うのかと思っていたが、根本的な問題で処理が動いてなかっただけだ。もしかしたらOSのバージョンとかAPIレベルの問題が原因でXML側設定がきかないのかもしれないので新しい処理は要注意。

WebMatrix php.iniを修正しても反映されない

WebMatrixでPHPを使っていて、PostgreSQL/GD/ZIPなどのライブラリを追加したい場合Apacheといっしょのようにphp.iniファイルを修正するが、WebMatrixのシステム特性上IIS Expressの再起動がない。どうもphp.iniファイルが修正されればIIS Expressが自動で反映してくれるらしいが、実際は反映してくれない。

php.iniファイルはWindows7 64bit / php5.3だと
「C:\Program Files (x86)\IIS Express\PHP\v5.3\php.ini」にあります。ここを修正するが更新されない。(更新日時がからならい)
詳しくはわからないのだが修正しても「C:\Users\k_ide\AppData\Local\VirtualStore\Program Files (x86)\IIS Express\PHP\v5.3」このフォルダのphp.iniが修正されれいる。多分IISなのかWindowsの仕様かはわからないがバーチャルでの修正となるので反映されないようだ。

▼対処
修正したファイルをコピーして「C:\Program Files (x86)\IIS Express\PHP\v5.3」に上書きしたら反映された。
これが正式な方法かはわからないが対処できたからよしとする。

追記:Windows7(多分Vistaもかな) VirtualStoreという機能がありこれはファイル・フォルダの仮想化する機能のことです。
VirtualStoreとはアプリからC:\WindowsやC:\Program Filesにファイル作成(上書き保存)しようとすると、実際は別のフォルダに出力されるという機能です。アプリが意識していない場所(VirtualStore)に勝手に出力されてしまう機能です。

参考サイト
http://homepage2.nifty.com/nonnon/Chinamini/20100001/20101116.html

Objective-Cの勉強

iOSアプリは、Objective-Cを使って開発を行う。これがオブジェクト指向なんですが今まで使ってきたC# Javaと違って文法が違うのでなれるまでは大変そうです。このObjective-CはSmalltalkを基に作られているようです。もちろんCの関数も使えます。Smalltalkなんて学生の時に卒研で使っていらいで、かなりというか忘れていますね(笑)
それでもiOSアプリを開発する上ではさけては通れないのでなれていくしかないですね。基本的なところざっと流して勉強したので、次は人のプログラムみて理解していくか。

Mac用のSubversionソフト

Subversionを使ってソースファイル等バージョン管理をしている。Windowsユーザーなので今回GUIのMac用のSubversionクライアントソフトがあるか調べてみたのでメモ。

前のバージョンだとXcodeでもSubversion使えたっぽかったみたい。詳しくはわかりませんが。今はGitだとできるっぽいですね。

Subversionソフト

svnx(無料)

Cornerstone

Mac App Store版は複数のマシンにインストールできるのでコスト的もうれしい。1ウインドウで複数のリポジトリや複数のワーキングディレクトリが扱え、ファイル比較機能なども内蔵されている。

Versions

Mac App Storeでは販売されていません。直接、Webサイトからライセンスを購入できます。1つのウインドウで複数のリポジトリやワーキングディレクトリを扱えます。この記事執筆時点では、最新版が1.xなので、Mac OS X10.4で動作するバージョン1.0.9でも使用できるライセンスが購入できます。

RapidSVN

特殊なリポジトリ管理をする、ということではなくて、単にブックマークを管理するという仕組みなので、やるべき設定はとてもシンプル。

他にもいろいろあるが、このあたりが有名どころみたい。
もう少し詳しく調べてみて使わないとわかりませんね。

▼参考サイト
http://www.rk-k.com/archives/13
http://d.hatena.ne.jp/tksthdnr/20120409/1333980401
http://labs.torques.jp/2010/10/23/1451/

Androidダイアログ AlertDialog

確認やメッセージを表示するためにWindowsアプリ開発ではダイアログメッセージを使うが、AndroidではAlertDialogを使うようだ。JavaScriptでもalertを使いますね。

AlertDialogはモーダルダイアログではないのでダイアログ画面を表示しても処理が走ってしまうということだ。実行の有無などユーザーに確認する場合など、処理判断はコールバックメソッド(OnClickListener)を使わないといけない。Windowsのプログラムのように戻り値で判断できないのは処理フローとしても面倒だし、やたらプログラムを書かないといけない。Androidの仕様とはいえせめて確認画面ぐらいはモーダルで処理できるようにしてもらいたかった。まあ確かにバージョン表示みたいものが表示されても処理は継続しても問題ないし。開発の数こなせば慣れていくことでしょう。

それにしてもやたらプログラム書かないいけないのでいづれDialogクラスとか標準化していかないといけないですね。