2012-01-22 24 views
5

Đây là mã thoại của tôi, có một ListView trong một hộp thoại, tôi muốn đóng hộp thoại này khi tôi bấm vào ListView:Làm thế nào để đóng AlertDialog khi tôi bấm vào mục ListView

public void createSearchDialog(final String[] Memo){ 
     LayoutInflater factory = LayoutInflater.from(this); 
     View searchView = factory.inflate(R.layout.seach_dialog, null); 

      lv = (ListView) searchView.findViewById(R.id.search_list); 
     lv.setAdapter(new MyPerformanceArrayAdapter(this, Memo, memo_PW)); 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) { 
       // TODO Auto-generated method stub 

         /// close dialog 
      } 
     }); 


     searchBuilder = new AlertDialog.Builder(this); 
     searchBuilder.setTitle("Search") 
       .setView(searchView) 
       .setNegativeButton("Back", new DialogInterface.OnClickListener() {    
       public void onClick(DialogInterface arg0, int arg1) { 
        // TODO Auto-generated method stub 

       } 
      }) 
       .show();  

    } 

Tôi cố gắng để đưa mã này trong onItemClick()

searchBuilder.create().dismiss(); 

    searchBuilder.create().cancel(); 

Nhưng nó không hoạt động.

+0

một AlertDialog tự động đóng trên một nút B BYNG DEFAULT. – JoxTraex

Trả lời

15

Thay đổi .show() thành dialog = searchBuilder.show(); rồi đặt dialog.dismiss() đến onItemClick().

+0

làm việc hoàn hảo –

+1

nơi để khởi tạo hộp thoại và loại là gì và cách sử dụng nó .. vui lòng trả lời đúng với mã .. – Nepster

+1

Hộp thoại AlertDialog; sẽ là toàn cầu thì nó sẽ hoạt động –

1

Để loại bỏ hộp thoại .dismiss() sẽ hoạt động. Vui lòng kiểm tra xem bạn đang gọi địa điểm này ở đúng chỗ. nếu bạn muốn đóng hộp thoại khi lựa chọn được thực hiện từ ListView thì bạn cần loại bỏ hộp thoại trong trình nghe hành động của ListView.

+0

tôi đặt searchBuilder.create(). Dismiss(); vào onItemClick nhưng nó vẫn không hoạt động – Intathep

+0

bạn có thể thử với searchbuilder.dismiss() – amandroid

+0

tôi không thể gọi searchbuilder.dismiss(),, Phương thức loại bỏ() không được xác định cho loại AlertDialog.Builder – Intathep

Các vấn đề liên quan