2010-08-09 39 views
0

我有一個通過我的Actvity的onCreateDialog()回調創建的對話框窗口。在對話框中,我希望允許用戶輸入一個電子郵件地址或從他們的聯繫人列表中選擇一個聯繫人,並根據他們的選擇填寫電子郵件地址。這可以通過使用來實現:從對話框窗口中選擇聯繫人

Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); 
startActivityForResult(intent, CHOOSE_CONTACT); 

然而,由於對話本身並不是一個活動,我不能用這個方法,我所能做的最好是

context.startActivity() 

如何從一個啓動聯繫人列表對話並獲得結果?

回答

0

您可以使用對話框主題創建自定義活動,而不是使用對話框。從用戶的角度來看,沒有什麼區別,但它允許你的對話框實際上是一個活動。

+0

我想我可能不得不這樣做,但是還有另一個問題。如果我使對話成爲活因,那麼我必須在清單中註冊併爲其製作佈局。 Dialog的佈局在編譯時並不知道,因爲它取決於某些服務器響應。那麼我怎麼開始這個Dialog活動併爲它提供一個自定義佈局呢? – TylerJames 2010-08-09 16:53:43

+0

您可以在運行時編輯佈局。根據它的不同,你可以讓你的xml佈局包含所有內容,然後將某些視圖設置爲GONE可見。或者,您可以添加新視圖,更新文本等。只需通過findById獲取感興趣的視圖或佈局即可。 – 2010-08-09 17:16:43

+0

我看到你可以這樣做,但我認爲我想要做的是有點不同。根據服務器返回的內容,我的MainActivity可能會說「我想用兩個編輯字段,一個日期字段和兩個按鈕創建一個DialogActivity」。或者,不同的結果可能需要幾個旋鈕,單選按鈕和編輯欄。 由於您無法直接實例化活動,因此很難以這種方式對其進行自定義。 – TylerJames 2010-08-09 20:30:37