2010-06-18 52 views
2

有沒有辦法從視圖開始活動?我有這個很好的視圖,呈現這些菜單按鈕,當他們點擊一個特定的按鈕(陷入onTouch事件)我想開始「點擊」​​活動。從android中的視圖開始一個活動?

看來,從我的角度來看,startActivity方法是不可接受的。因此,這導致我相信沒有辦法做到這一點,在這種情況下,我想我問,當我想要這個菜單有一個動畫可繪製的視圖,並可以觸摸知道什麼「按鈕時,我在這裏做什麼? 「被迫知道什麼活動開始?

我一直在尋找,似乎沒有任何東西符合我的需求。我懷疑,因爲我無法找到它可能以某種方式破壞慣例,在這種情況下,這樣做的正確方法是什麼?

我有另一個活動,啓動這個很酷的滾動瓷磚地圖視圖。當用戶點擊一個特定的tile時,我想根據點擊的tileID加載一個完全不同的視圖(甚至可能不知道我需要哪個活動)。這個新的視圖或活動會顯示被單擊的單元格中的所有項目(想象一下帶有單元格的地圖,每個單元格都有內容)當用戶單擊單元格時,會發生一個新視圖,將所有這些內容顯示爲很酷的可繪製對象,就像它在單元格中放大一樣)。

我想我需要同樣的東西,當用戶在我的滾動地圖視圖中,然後他們按下然後我得到他們點擊的單元格並使用它來初始化將啓動顯示放大狀態的活動(通過drawables使用我懷疑的一種新視圖)

回答

4

有沒有開始從視圖的活動 方式?

可以說,View應該通過已註冊的回調方法告訴承載它的活動啓動活動。我不是你在這裏描述的代碼組織的粉絲(但是,誠然,完全基於描述)。

但是,如果您真的想讓View開始活動,請致電View致電getContext().startActivity()

+0

感謝CommonsWare你可能是正確的。我很樂意讓我的觀點說:「哦,這塊瓷磚被感動了,好的活動我從另一個開始」,而不是啓動活動的觀點。這種感覺更加緊密......註冊回撥,我將不得不研究那些對這些我一無所知的人。 – Codejoy 2010-06-19 05:11:01

+0

我做了一些更多的研究,我可以找出我想怎麼有一個活動使用再掀: startActivityForResult 似乎什麼,我無法找到,雖然是如何調用回視圖的主機活動 似乎如果我可以這樣做,我可以在一項活動下獲得許多意見(他們甚至可以輕鬆地與每個人(意見)和主要活動共享彼此。 所以我無法弄清楚如何在視圖中說出正確的ontouch事件觸發時,caling活動獲取回調,解析onTouch所做的並通過設置新視圖來響應 – Codejoy 2010-06-19 09:10:35

+0

@Codejoy:「我是什麼似乎無法找到雖然是如何回調視圖的主機活動「 - 請參閱http://github.com/commonsguy/cw-advandroid/tree/master/Views/ColorMixer/爲自定義' View',用'Activity'註冊一個監聽器對象。這幾乎只是Java,沒有什麼特別的Android。 – CommonsWare 2010-06-19 12:06:47

0

你確實使用startActivity開始了一個活動。

// first create the intent 
Intent intent = new Intent (this, ClickedActivity.class); 
// start the activity 
this.startActivity(intent); 
+5

如果'this'是'View',那麼這是行不通的,因爲'View'沒有'startActivity()'。 – CommonsWare 2010-06-18 22:47:12

+0

'這'是一個活動,或者實際上,一個上下文 – 2010-06-19 02:58:32

+0

那麼,這不是答案。 – JacksOnF1re 2016-05-04 11:46:18