作者Jichang (C.C.Lemon)
看板AndroidDev
標題[問題] View start activity 後如何取得回傳值
時間Thu Jul 23 10:49:26 2015
請問一下
我寫了一個 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
推 givemepass: 寫個callback吧 07/23 11:02
→ Jichang: 請問你的意思是 由 context 在去呼叫 view 傳入回傳值嗎 07/23 11:18
推 givemepass: 不是哦 你google listener 07/23 11:32
推 ckvir: 你應該用 startActivityForResult 07/23 13:54
※ 編輯: Jichang (210.71.217.251), 07/23/2015 17:05:18
推 ckvir: 應該是不行,因為其實你的view 也是藉由使用人activity 去 07/23 21:19
→ ckvir: 換頁的,當然會由原使用人去接收 07/23 21:19
→ ssccg: 自己去start activity早就不只是個view元件了 07/23 21:37
→ ssccg: 堅持要做view元件,就不要開activity而是自己疊新的view 07/23 21:39
→ ssccg: 上去把ListActivity要做的事都在view層處理完才對吧 07/23 21:40
→ ssccg: 不然就至少做成fragment才收的到activity result 07/23 21:46
OK ... 我有改用Dialog 是可以的
只是因為 ListActivity 是系統中已經存在的
Activity 想說直接拿來套用
晚點改用 Fragment ... 感謝!
※ 編輯: Jichang (1.169.93.185), 07/23/2015 23:08:00
推 cakeboy: 或許可用view的settag跟gettag去包parcel的資料 07/25 10:24