2011-11-24 103 views
3

我想創建一個可以像對話框一樣使用的活動。 我的活動有一個對話框主題,所以它有對話的感覺。 在我的佈局中,我添加了一個TextView,顯示一條消息和三個按鈕(正面,負面,中性)。要顯示的文本消息作爲額外的Intent傳遞。按鈕名稱也是如此。我隱藏了在意圖附加項中已經傳遞了空字符串的按鈕。這幾乎實現了對話框的行爲,除了我不知道如何實現按鈕點擊偵聽器。對話框活動 - 添加按鈕點擊監聽器

任何想法?

回答

1

如果你有你在一個XML文件格式,你可以爲你的按鈕添加類似onClick="onMyButtonClick",然後在代碼中你將會有

public void onMyButtonClick(View sender) { ... } 

或者你可以在你的onCreate()

Button myButton = (Button)findViewById(R.id.my_button); 
myButton.setOnClickListener(new OnClickListener() { ... }); 

我想你會想要從你的onCLickListener呼叫finish()某處,或許與setResult()

1

這很簡單: 您應該通過startActivityForResult(Intent, requestCode); 開始對話並覆蓋方法onActivityResult(int requestCode,int resultCode,Intent數據)以獲取對話活動的結果。

每個對話按鈕,必須調用setResult()並完成它。並且如果您通過resultCode和數據,您將返回onActivityResult方法中的主要活動。

+0

它確實能解決我的問題,但爲此我需要從另一個活動中調用對話活動。你看我的問題是我沒有一個活動上下文。 –

+0

你如何計劃開始活動以及你想在哪裏處理點擊? – hunter

+0

我有應用程序上下文,我可以從那開始活動。我希望能夠處理來自我調用Activity的位置的點擊,不需要成爲合適的Clicklistener,只需點擊某個按鈕即可完成某種回調。 –