忍者ブログ
[PR]
×

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



2024/04/25 21:43 |
Android2.2 名刺管理アプリケーションを作ってみる5日目その6
http://codezine.jp/article/detail/4842?p=3

前回の続き。

前、名刺一覧画面にメニューを実装しましたが、今回は名刺詳細画面にメニューを実装し、詳細編集画面への遷移を作成してみます。
基本は同じですが、今回はアクティビティ呼び出し部分がstartActivity()ではなくstartActivityForResult()になっているところが違います。

/res/menu/show.xml
	<?xml version="1.0" encoding="utf-8" ?>
	<menu xmlns:android="http://schemas.android.com/apk/res/android">
	    <!-- 編集メニュー -->
	    <item
	        android:id="@+id/menu_edit"
	        android:title="@string/menu_edit"
	        android:icon="@android:drawable/ic_menu_edit" />
	</menu>

/src/com.example.bizcard/ShowActivity.java
    /**
     * オプションメニューの生成
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.show, menu);
        return true;
    }
    /**
     * オプションメニューをクリックした
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int itemId = item.getItemId();
        switch (itemId) {
            // 更新
            case R.id.menu_edit:
                // 現在表示しているBizCardを詰めてRegistActivityを実行
                Intent registIntent = new Intent( this, RegistActivity.class);
                registIntent.putExtra( BizCard.TABLE_NAME, bizCard);
                startActivityForResult( registIntent, -1);
        }
        return true;
    };
    /**
     *  startActivityForResult()で飛んでった先から戻ってきた
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if( resultCode == RESULT_OK){
            // 表示を更新する
            BizCardDao dao = new BizCardDao( this);
            bizCard = dao.load( bizCard.getRowid());
            updateView();
        }
    }

オプションメニューは他のメソッド類とは独立しているので単に追加するだけです。
onCreateOptionsMenu()にて作成した/res/menu/show.xmlをセット。
onOptionsItemSelected()でIDをチェックし、クリックされたのが"@+id/menu_edit"であればRegistActivityを実行。
ここで実行時にstartActivityForResult()を使用すると、移動先から戻ってきた際にonActivityResult()が実行されます。

onActivityResult()では単に返却値=RESULT_OKであればリロードを行っているだけです。
RESULT_OKという定数がいきなり登場しますが、Activity.RESULT_OKで定義されています。
他にRESULT_CANCELEDRESULT_FIRST_USERが予め用意されているので、返り値としてこれを使用するのがわかりやすいでしょう。
で、RESULT_FIRST_USERってどういう意味だ?

startActivityForResult()の第二引数-1がわからないんですが何これ。
単に使わないから適当な値入れてるだけ?


Androidの記事
PR


2010/09/03 23:44 | Comments(0) | TrackBack() | Android

トラックバック

トラックバックURL:

コメント

コメントを投稿する






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



<<地球防衛軍 | HOME | Android2.2 インターフェイスに@override>>
忍者ブログ[PR]