忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/11/23 07:44 |
Android2.2 名刺管理アプリケーションを作ってみる5日目その4

http://codezine.jp/article/detail/4842?p=2

前回の続き。
現在は既に登録されている名刺を表示するだけしかできません。
新規登録アクティビティへのリンクを作成します。

まずはこれまでのテンプレートとは完全に独立した登録メニューを作成。
/res/menu/list.xml

	<?xml version="1.0" encoding="utf-8" ?>
	<menu xmlns:android="http://schemas.android.com/apk/res/android">
		<!-- 新規メニュー -->
		<item
			android:id="@+id/menu_new"
			android:title="@string/menu_new"
			android:icon="@android:drawable/ic_menu_add" />
	</menu>
"@string/menu_new"とついでに他のメニュー文言を登録。
/res/values/string.xml
    <string name="menu_new">新規</string>
	<string name="menu_save">保存</string>
	<string name="menu_edit">編集</string>
	<string name="menu_delete">削除</string>
メニューボタンを押したときの挙動を追加。
/src/com.example.bizcard/ListActivity.java
	@Override
	public boolean onCreateOptionsMenu(Menu menu){
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.list, menu);
		return true;
	}
Activity.onCreateOptionsMenu()はメニューボタンを押したときに出てくる内容を変更するメソッドです。
MenuInflater.inflate()という謎のメソッドを実行することでメニューを追加することができます。
ひとつだけだとメニュー全体にボタンが現れますが、複数回追加すると追加したぶんだけメニューが増やせます。

メニューにクリック時の遷移を追加します。
こちらは元々クリックされることが想定されているので、わざわざリスナーを追加したりせずとも簡単に監視を行うことができます。
	//メニューボタンのクリックイベント
	public boolean onOptionsItemSelected(MenuItem item) {
		int itemId = item.getItemId();
		switch (itemId) {
		case R.id.menu_new:
			// 編集画面へ遷移
			Intent registIntent = new Intent( this, RegistActivity.class);
			startActivity( registIntent);
			break;
		}
		return true;
	};
Activity.onOptionsItemSelected()でメニューボタンをクリックしたときのイベントを記述します。
こちらはonItemClickと違ってMenuItemというわかりやすい引数で来ます。
クリックした部分が"@+id/menu_new"であればRegistActivityにインテントを送信しています。
今回はメニューにR.menu.listしかないのでswitch文の意味が全く無いですが、メニューに複数のボタンを追加したときでも全く同様に処理することができます。

無事に新規登録メニューができました。
サンプルと色がちがうんだが何でだろう?
 

Androidの記事
PR


2010/08/23 22:37 | Comments(0) | TrackBack() | Android

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<Android2.2 名刺管理アプリケーションを作ってみる5日目その5 | HOME | 買ったものリスト 2010/08/22>>
忍者ブログ[PR]