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: