2012-12-27 49 views
3

我正在處理一個應用程序,其中我在AlertDialog中填寫了一個列表。在某些情況下,對話框出現,顯示其Title,MessageCustom listview。問題是,當我在列表中添加4個以上的條目時,設置的對話框消息被列表視圖隱藏。我想在郵件下面顯示列表視圖,無論列表多長。誰能幫我嗎????AlertDialog中的自定義ListView隱藏對話框的消息?

實現如下:

AlertDialog.Builder builder = new AlertDialog.Builder(xActivity.this); 
    builder.setTitle("Title"); 
    builder.setMessage("Following items are in the List");     
    final ListView modeList = new ListView(xActivity.this); 
    ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(xActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, simpleArray); 
    modeList.setAdapter(modeAdapter); 
    modeList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    builder.setView(modeList); 
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface arg0, int arg1) { 

    // Do Something 

    } 
}}); 

final Dialog dialog = builder.create(); 
dialog.show(); 

任何幫助表示讚賞.... :-)

+0

警報對話框具有特定的長度。如果列表長度超過特定數量,則會超過該消息。解決這個問題的一個好方法就是創建類似活動的對話框。 –

+0

對於標準的AlertDialog,您只能有消息或列表中的一個,但不能同時擁有兩個消息,您應該使用自定義對話框或自定義視圖來顯示警報對話框。 – Ridcully

回答

3

我建議,並認爲最好的辦法是創造,而不是預定義AlertDialog的自定義對話框。創建你自己的xml。

http://developer.android.com/guide/topics/ui/dialogs.html

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tvMessage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Following items are in the List" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <ListView 
     android:id="@+id/lvList" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1.15" > 
    </ListView> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Yes" /> 

</LinearLayout> 

爪哇

Dialog dialog = new Dialog(this); 
dialog.setContentView(R.layout.dialog_listview); 

Button btn = (Button) dialog.findViewById(R.id.button1); 
btn.setOnClickListener(new OnClickListener(){ 

    public void onClick(View arg0) { 
     dialog.cancel(); 
     }  
}); 

dialog.show(); 
0

我建議使用上述曝光的相同方式,,代替使用基本Dialog類,則DialogFragment類,這是保持在它的狀態設備的狀態變化(旋轉/鍵盤...) 希望它有幫助...;)

相關問題