2012-05-18 32 views
3

我有一个AlertDialog的子类,它应该显示范围内所有可用Wifi网络的列表。如何使用ListView创建AlertDialog,而不使用AlertDialog.Builder?

我希望对话框本身将负责启动Wifi扫描并接收结果。

由于这个原因,我不能使用AlertDialog.Builder来设置ListView项目,因为在创建对话框的时候我还没有它们,它们可能会在演示过程中发生变化。

所以我问的是如何使用AlertDialog的内置支持提出一个选择列表,没有AlertDialog.Builder

如果不可能,我该如何创建自己的ListView并将其设置为对话框的内容视图?

回答

4

看到下面的代码:

public void show_alert() { 
    // TODO Auto-generated method stub 

    final Dialog dia = new Dialog(this); 
    dia.setContentView(R.layout.alert); 
    dia.setTitle("Select File to import"); 
    dia.setCancelable(true); 

    list_alert = (ListView) dia.findViewById(R.id.alert_list); 
    list_alert.setAdapter(new ArrayAdapter<String>(getApplicationContext(), 
      android.R.layout.simple_list_item_1, 
      main_genral_class.file_list)); 
    list_alert.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> arg0, View arg1, int pos, 
       long arg3) { 
      String fname = main_genral_class.file_list.get(pos); 
      dia.dismiss(); 

     } 
    }); 
    dia.show(); 
} 

布局文件名alert.xml

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/alert_list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 
+0

谢谢您的回答!它正在工作,但它看起来不再是一个对话框......该列表填满了整个屏幕,并且没有标题......任何想法为什么? –

0

你可以采取一个对话框

final Dialog _dialog1 = new Dialog(this); 
    _dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    _dialog1.setContentView(R.layout.your_own_listView); 

in setContentView() u can put ur own listView 
相关问题