やまものブログ

メモ書きブログです (^_^;A

ADT トレーニング "Adding the Action Bar" をちょっと味見

Building Your First App
の次の項目
Adding the Action Bar
の内容を味見程度に確認しました。

このセクションでは、Action Bar の設定とかデザインの変更について解説しています。しかし、実際に動作するアプリケーションのコードは紹介されていないようで、具体的には、
Respond to Action Buttons
のサンプルコードの中に
openSearch();
とか
openSettings();
といったメソッド(といえばいいのか?Javaでは)がコールされていますが、このインプリは紹介されていません。ですので、新しく動かせるアプリはこのセクションでは追加されていません。私が見落としていなければですが。

以下、実際に試したことについて。
まず、下記の赤い丸で囲んだボタンを追加しました。

一番右の虫眼鏡のボタンは、res/menu/main.xml に下記のコードを追加しました。
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom" />

2行目の "android:icon" が虫眼鏡の画像を指定しているのですが、画像ファイルは "ic_action_search.png" でウェブ検索して拾ってきて、下記のディレクトリに放り込みました
~/workspace/MyFirstApp/res/drawable-xxhdpi/ic_action_search.png
~/workspace/MyFirstApp/res/drawable-hdpi/ic_action_search.png
~/workspace/MyFirstApp/res/drawable-mdpi/ic_action_search.png
~/workspace/MyFirstApp/res/drawable-xhdpi/ic_action_search.png

右から2番目の ”Ken-saku" はこのボタンをクリックするとヘルプとして出てくる文字で、res/values/strings.xml に追加した下記の string です。
<string name="action_search">Ken-saku</string>

左の端、黄緑のアンドロイドのアイコンの横にある '<' ボタンは親 Activity に戻るためのもので、
src/com/example/myfirstapp/MainActivity.java
で定義されている onCreate() に、 下記のコードを追加すると出てきます。
getActionBar().setDisplayHomeAsUpEnabled(true);

しかし、この Activity はトップであって親がいないため、'<' をクリックしても何も変わりません。さらに、eclipse を起動すると、このコードがあることで Android Lint が異常終了します。eclipse 上での作業は継続できますが。


最後に、Theme を変更してみました。今までのは Holo で、下記は Holo.Light です。

これは、~/workspace/MyFirstApp/AndroidManifest.xml にて、もともと
android:theme="@style/AppTheme" >
とあったのを、
android:theme="@android:style/Theme.Holo.Light" >
に変更しました。


以上をもって、ADT サイトの Training から離れて、最初に目標にしていた 「10日でおぼえるAndroidアプリ開発入門教室」に着手したいと思います。開発環境は用意出来たということで

ただし、環境には問題が残ってしまいました。eclipse 上で java コードを修正すると SIGSEGV で落ちまくります。eclipse のエディタは、XML で定義した id などを入力候補として提案しますが、その動きをしようとすると即 SIGSEGV で落ちます。対策が簡単に見つけられればいいのですが、、、とりあえず、Linux ターミナル上でコードを修正することで回避しています