http://codezine.jp/article/detail/4842?p=3
前回の続き。
前、名刺一覧画面にメニューを実装しましたが、今回は名刺詳細画面にメニューを実装し、詳細編集画面への遷移を作成してみます。
基本は同じですが、今回はアクティビティ呼び出し部分がstartActivity()ではなくstartActivityForResult()になっているところが違います。
/res/menu/show.xml
/src/com.example.bizcard/ShowActivity.java
オプションメニューは他のメソッド類とは独立しているので単に追加するだけです。
onCreateOptionsMenu()にて作成した/res/menu/show.xmlをセット。
onOptionsItemSelected()でIDをチェックし、クリックされたのが"@+id/menu_edit"であればRegistActivityを実行。
ここで実行時にstartActivityForResult()を使用すると、移動先から戻ってきた際にonActivityResult()が実行されます。
onActivityResult()では単に返却値=RESULT_OKであればリロードを行っているだけです。
RESULT_OKという定数がいきなり登場しますが、Activity.RESULT_OKで定義されています。
他にRESULT_CANCELEDとRESULT_FIRST_USERが予め用意されているので、返り値としてこれを使用するのがわかりやすいでしょう。
で、RESULT_FIRST_USERってどういう意味だ?
startActivityForResult()の第二引数-1がわからないんですが何これ。
単に使わないから適当な値入れてるだけ?
Androidの記事
前回の続き。
前、名刺一覧画面にメニューを実装しましたが、今回は名刺詳細画面にメニューを実装し、詳細編集画面への遷移を作成してみます。
基本は同じですが、今回はアクティビティ呼び出し部分が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_CANCELEDとRESULT_FIRST_USERが予め用意されているので、返り値としてこれを使用するのがわかりやすいでしょう。
で、RESULT_FIRST_USERってどういう意味だ?
startActivityForResult()の第二引数-1がわからないんですが何これ。
単に使わないから適当な値入れてるだけ?
Androidの記事
PR
トラックバック
トラックバックURL: