2010-08-05 77 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()。