2010-08-05 3 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

대화 상자를 닫을 준비가 되었으면 대화 상자 개체에서 dismiss()을 호출하여 대화 상자를 닫을 수 있습니다. 필요한 경우 대화에서 효과적으로 dismiss()를 호출하는 Activity에서 dismissDialog(int)으로 전화 할 수도 있습니다.

onCreateDialog (int)를 사용하여 대화 상자의 상태를 관리하는 경우 대화 상자가 닫힐 때마다 대화 상자 개체의 상태가 작업에 의해 유지됩니다. 이 객체가 더 이상 필요하지 않거나 주정부가 해제되어야한다고 결정하면 removeDialog(int)으로 전화해야합니다. 그러면 개체에 대한 내부 참조가 제거되고 대화 상자가 표시되면이를 닫습니다.

해서 ProgressDialog가 예를 들어 ProgressDialogName.dismiss().

를 사용 닫으려면 Mydialog.dismiss()

자세한 내용은 Android-SDK을 참조하십시오.

이것 좀보세요 example.

+0

감사합니다. onClick() 메서드는 내부에서 dismiss() 메서드를 사용할 수 없습니다. 더 나은 솔루션을 발견했습니다. – user410220

+0

@ user410220 thats gr8 –

1

버튼을 눌렀을 때 대화 상자를 닫으려면 onClick() 메서드 내에서 dialog.dismiss()를 호출하십시오.

관련 문제