2010-08-05 78 views
0
   AlertDialog.Builder fpdialog = new AlertDialog.Builder(context); 
       ListView fpathlist = new ListView(context); 
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,android.R.layout.simple_expandable_list_item_1, fpathdata()); 
       OnItemClickListener listener = new OnItemClickListener() { 

        public void onItemClick(AdapterView<?> parent, View view, 
          final int position, long arg3) { 
         // TODO Auto-generated method stub 
         for (int i=0;i<=position;i++) 
         { 
          if (i==position) 
          { 
           CharSequence[] pathString = {"在地图显示","发短信","共享","删除"}; 
           final AlertDialog.Builder pathlist = new AlertDialog.Builder(context); 
           pathlist.setTitle("路线收藏"); 
           pathlist.setItems(pathString, new DialogInterface.OnClickListener() { 

            public void onClick(DialogInterface dialog, int which) { 
    //Here I want to dismiss the fpdialog         
            }}); 
           pathlist.show(); 
          } 
         } 
        } 
       }; 
       fpathlist.setOnItemClickListener(listener); 
       fpathlist.setAdapter(adapter); 
       fpdialog.setView(fpathlist); 
       fpdialog.show(); 

回答

2

当您准备关闭对话框时,您可以通过在Dialog对象上调用dismiss()来解除对话框。如有必要,您还可以从Activity中调用dismissDialog(int),该功能有效地在您的Dialog上调用dismiss()。

如果您使用onCreateDialog(int)来管理对话框的状态,那么每次对话框关闭时,该对话框的状态都会被Activity保留。如果您决定不再需要此对象,或者清除状态至关重要,则应致电removeDialog(int)。这将删除对象的任何内部引用,并且如果该对话框正在显示,它将消除它。

要关闭ProgressDialog使用ProgressDialogName.dismiss().

对于例如Mydialog.dismiss()

有关更多信息,请参阅Android-SDK

看看这个example

+0

谢谢onClick()方法不能使用dismiss()里面,我找到了更好的解决方法。 – user410220 2010-08-06 08:02:07

+0

@ user410220多数民众赞成gr8 – 2010-08-06 08:26:32

1

如果您只是想在按下按钮时关闭对话框,请在onClick()方法内调用dialog.dismiss()。