[問題] View start activity 後如何取得回傳值

看板AndroidDev作者 (C.C.Lemon)時間9年前 (2015/07/23 10:49), 9年前編輯推噓5(506)
留言11則, 5人參與, 最新討論串1/1
請問一下 我寫了一個 view 但是在 view 裡面會利用 context.startActivity 去產生另外一個 activity 但是 那個 activity 完成操作後 要如何把回傳值,送回去給 view 正常是會呼叫 context 的 onActivityResult 但是我的 view 有事件可以監聽嗎? 因為我想要讓事件寫在 view 裡面 不想寫在 context裡面? 謝謝! ------------------------------------------ 我再說明一下好了 class MainAcitivy{ View view; } class View{ MainAcitivy a; onClick(){ a.startActivityForResult(ListActivity.class); } } class ListActivity{ finish(); // send data to view .. } 現在問題是 ListActivity 回傳的資料 會在 MainAcitivy 的 onActivityResult 的 intent 拿到 但是我想要在 view 裡面處理這件事情 因為 我開發的是 view 元件,所以不希望使用的人(Acitvity) 還要去處理這一段 例如說 view 有沒有什麼事件可以監聽 知道他的activity 又變成 start 狀態? ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.71.217.251 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1437619768.A.BCF.html

07/23 11:02, , 1F
寫個callback吧
07/23 11:02, 1F

07/23 11:18, , 2F
請問你的意思是 由 context 在去呼叫 view 傳入回傳值嗎
07/23 11:18, 2F

07/23 11:32, , 3F
不是哦 你google listener
07/23 11:32, 3F

07/23 13:54, , 4F
你應該用 startActivityForResult
07/23 13:54, 4F
※ 編輯: Jichang (210.71.217.251), 07/23/2015 17:05:18

07/23 21:19, , 5F
應該是不行,因為其實你的view 也是藉由使用人activity 去
07/23 21:19, 5F

07/23 21:19, , 6F
換頁的,當然會由原使用人去接收
07/23 21:19, 6F

07/23 21:37, , 7F
自己去start activity早就不只是個view元件了
07/23 21:37, 7F

07/23 21:39, , 8F
堅持要做view元件,就不要開activity而是自己疊新的view
07/23 21:39, 8F

07/23 21:40, , 9F
上去把ListActivity要做的事都在view層處理完才對吧
07/23 21:40, 9F

07/23 21:46, , 10F
不然就至少做成fragment才收的到activity result
07/23 21:46, 10F
OK ... 我有改用Dialog 是可以的 只是因為 ListActivity 是系統中已經存在的 Activity 想說直接拿來套用 晚點改用 Fragment ... 感謝! ※ 編輯: Jichang (1.169.93.185), 07/23/2015 23:08:00

07/25 10:24, , 11F
或許可用view的settag跟gettag去包parcel的資料
07/25 10:24, 11F
文章代碼(AID): #1Li5OulF (AndroidDev)