2011/02/28 0 コメント

Android - メニューの表示

メニューを作成した場合はいかのようにすればOK


こんな感じです


  1. // メニューの設定  
  2. @Override  
  3. public boolean onCreateOptionsMenu(Menu menu) {  
  4.     super.onCreateOptionsMenu(menu);  
  5.     menu.add(0 , Menu.FIRST , Menu.NONE , "MENU1").setIcon(アイコン);  
  6.     menu.add(0 , Menu.FIRST + 1 , Menu.NONE , "MENU2").setIcon(アイコン);  
  7.     menu.add(0 , Menu.FIRST + 2 , Menu.NONE , "MENU3").setIcon(アイコン);  
  8.     return true;  
  9. }  
  10.   
  11. // メニューが押された場合  
  12. @Override  
  13. public boolean onOptionsItemSelected(MenuItem item) {  
  14.     boolean ret = true;  
  15.     Intent intent = new Intent();  
  16.     switch (item.getItemId()) {  
  17.         case Menu.FIRST:  
  18.             // 項目IDが Menu.FIRST のものを押された際の処理  
  19.             break;  
  20.         case Menu.FIRST + 1:  
  21.             // 項目IDが Menu.FIRST + 1 のものを押された際の処理  
  22.             break;  
  23.         case Menu.FIRST + 2:  
  24.             // 項目IDが Menu.FIRST + 2 のものを押された際の処理  
  25.             break;  
  26.         }  
  27.     return ret;  
  28. }  


ちなみに, menu.add(int groupId, int ItemId, int order, CharSequence title); の順番
Menu.NONE (= 0)をorderに指定した場合は, addをした順番でメニューに表示されます。

また, Androidで表示できるメニュー数は6つまでとなっていて、ここで7つ以上のメニューを設定した場合は, 1~5番目の項目に加えて「MORE」という項目が加わったメニューが表示され、MOREをタップすると, 残りの6番目以降の項目が表示されると言った形になります。

2011/02/27 0 コメント

Android - 固定ヘッダー付きのListView - その1

固定ヘッダー付きのListViewを使用する場合 (Webページでいう position:fixed; のヘッダー)

ヘッダーに 「Left Button」「Center Button」「Right Button」を配置した場合は以下のようにすればOK

こんな感じになります。(スクロールしても、ヘッダーの部分は固定です。)


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.  android:layout_width="wrap_content"  
  4.  android:layout_height="wrap_content"  
  5.  >  
  6.  <LinearLayout  
  7.   android:id="@+id/header_menu"  
  8.   android:layout_width="fill_parent"  
  9.   android:layout_height="wrap_content"  
  10.      android:orientation="horizontal"  
  11.   >  
  12.   <Button  
  13.    android:layout_width="wrap_content"  
  14.    android:layout_height="wrap_content"  
  15.    android:text="Left Button"  
  16.    />  
  17.   <Button  
  18.    android:layout_width="wrap_content"  
  19.    android:layout_height="wrap_content"  
  20.    android:text="Center Button"  
  21.    android:layout_weight="1"  
  22.    />  
  23.   <Button  
  24.    android:layout_width="wrap_content"  
  25.    android:layout_height="wrap_content"  
  26.    android:text="Right Button"  
  27.    />  
  28.  </LinearLayout>  
  29.  <ListView  
  30.   android:layout_width="fill_parent"  
  31.   android:layout_height="wrap_content"  
  32.   android:id="@+id/ListViewSample"  
  33.   android:layout_below="@id/header_menu"  
  34.   >  
  35.  </ListView>  
  36. </RelativeLayout>  

フッターもつけたい場合は,
http://blog.maxaller.name/2010/05/attaching-a-sticky-headerfooter-to-an-android-listview/
を参考にするとよし。
2011/02/27 0 コメント

MacローカルでSVN - subversive (eclipse) 導入

eclipseにsubversiveプラグインを入れて, SVN環境を整えました。
そのときの導入方法まとめ

① eclipseメニューから, 「ヘルプ -> 新規ソフトウェアのインストール」
② http://download.eclipse.org/technology/subversive/0.7/update-site/ を指定
③ Subversive 統合プラグイン (インキュベーション) と Subversive SVN チーム・プロバイダー・プラグイン (インキュベーション) を選択 (Subversive ソース (インキュベーション)は今回導入していません)
④ 上記のプラグインをインストール

これで, Eclipseへのインストールは完了.
次に, Macローカルにリポジトリを作成します。リポジトリは, /Users/ユーザー名/svn に作成する事とします。

① まずリポジトリとなるsvnディレクトリを作成 (mkdir /Users/ユーザー名/svn)
② /usr/bin/svnadmin create /Users/ユーザー名/svn を実行し, リポジトリを作成
③ このパスをEclipseで設定 (プロジェクト名の上, 等で右クリックメニュー -> チーム -> プロジェクトの共有)
④ リポジトリのパスに, file:///Users/ユーザー名/svn を指定

これで完了。subversiveが使えます。
2011/02/26 0 コメント

Android - ListViewにTextViewとCheckboxを配置

< 問題点 >
ListView上にTextViewを配置した場合, その項目上をタップすると, ListViewのクリックイベントが発生する。
これは良いのだが、TextViewだけでなく, ListViewにTextViewと「Checkbox」を配置した場合、テキストの部分(TextView)をタップしても反応しなくなってしまう。(チェックボックスの方にフォーカスが移ってしまっていて, チェックボックスしか反応しなくなる、)

<解決法>
そこで, チェックボックスに対してのタップイベントもListViewに対するイベントも両方独立して使用可能にするには, Checkboxに対して

android:focusable="false"
android:focusableInTouchMode="true"

を設定してあげれば良いらしい。
2011/02/25 0 コメント

Android - ArrayAdapterメモ

ArrayAdapterは, 指定した1つの TextView に対してテキストをセットするためのAdapterとのこと。

http://d.hatena.ne.jp/androidprogram/20100703/1278112044 のサイトがとても分かりやすく解説してくれていた。


つまり, 複数のTextViewに対しては操作できない!ということである。
もし複数のTextView等に対して操作したい場合は, ArrayAdapterを拡張する必要があるっぽい。

拡張したい場合は以下のサイトを参考にさせていただいた。
http://isakado.blog106.fc2.com/category0-1.html
2011/02/20 0 コメント

Android - Error generating final archive: Debug certificate expired on ...

突然 Error generating final archive: Debug certificate expired on ...
というエラーでデバッグできなくなってしまった。これはkeystoreの有効期限が問題らしく

http://magpad.jugem.jp/?eid=151

を参考にさせていただき、解決できました。
 
;