2011-10-25 81 views
2

我一直在爲這一問題奮鬥一天,而我無法弄清楚如何解決它。具有多種選擇和自定義視圖的對話框

所以,我有一個AlertDialog,我想顯示一個項目列表來選擇。這些項目必須有多個文本視圖,所以我不能依靠構建器上使用默認格式的簡單setMultiChoiceItems()

我在這裏用我的自定義ArrayAdapter,這樣做:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Choose details to display"); 
builder.setAdapter(new ContactAdapter(this, 0, items), null); 

我想我可以用一個OnClickListenersetAdapter第二paramtere但選擇一個選項後,關閉對話框。

試圖解決這一問題我添加了一個setOnClickListener()我ContactsAdapter裏面,當我讀取該行佈局,像這樣:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.contact_row, null); 
view.setOnClickListener(new OnClickListener() {....} 

這工作,但我停止獲取的亮點,當我點擊一排,我真的很不想要。

任何想法如何解決這個問題?我知道我可以使用ListActivity,這很容易解決,但我真的想在對話框中做到這一點。謝謝!

回答

2

如果您覺得使用ListActivity很容易,那麼爲什麼不這樣做,並使用對話框主題使用setTheme(android.R.style.Theme_Dialog)android:theme="@android:style/Theme.Dialog"作爲應用程序清單中的Activity?

如果你的目標是蜂巢或冰淇淋三明治(Android 3.0+),它叫做setTheme(android.R.style.Theme_Holo_Dialog)android:theme="@android:style/Theme.Holo.Dialog"

+0

嗯,首先是因爲我從來沒有聽說過這個。我會現在嘗試,並稍後給予反饋:) –

+0

當然可以! :-) –

+0

它的工作原理,但我必須使整個視圖(OK /取消按鈕),並從一項活動傳遞到其他。這樣可以,但實際上並不像使用警報那麼流暢。至少在我的手機裏:)對解決方案並不滿意! –

相關問題