2012-04-19 29 views
0

我使用的是以下代碼。但警報對話框關閉不會發生。我正在使用具有列表視圖的自定義視圖,我正在嘗試列表項目單擊,警告對話框應該被解僱。在項目點擊偵聽器正在工作,但警報對話框不是解僱。任何人都可以幫助我。點擊從列表中選擇項目時Alert Dialogue dismiss happing

View titleView = new View(MixContainerInfoActivity.this); 
    titleView = (View)getLayoutInflater().inflate(R.layout.custom_unit_title, null); 
    TextView tv = (TextView)titleView.findViewById(R.id.custom_title_txt_view);  
    tv.setTypeface(typeFace); 
    tv.setText("CONTAINER OR IMPLEMENT..."); 

    View view = new View(MixContainerInfoActivity.this); 
    view = (View)getLayoutInflater().inflate(R.layout.unit_list, null); 
    containerList = (ListView)view.findViewById(R.id.unit_list_view); 
    ArrayAdapter<Vector> containerAdapter = new UnitMenuAdapter(MixContainerInfoActivity.this, R.layout.custom_unit_list, containerVector);  
    containerList.setAdapter(containerAdapter); 


    final AlertDialog.Builder builder = new AlertDialog.Builder(MixContainerInfoActivity.this); 

    builder.setCustomTitle(titleView); 
    builder.setView(view); 



    final AlertDialog alert = builder.create(); 
    alert.show(); //edited here 

    containerList.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       System.out.println("Item Clicked.."); 

       alert.dismiss(); 

      } 
     }); 
+0

要取消alertDialog上一個AdapterView的點擊.. 。?這怎麼可能..?他們怎麼能在同一時間在前臺..? – ngesh 2012-04-19 09:18:52

+0

那我該怎麼辦呢?有什麼線索嗎? – 2012-04-19 09:20:10

+0

這是不可能的....你需要忽略它,當點擊對話框中的按鈕...你不能同時在他們兩個在forground ... – ngesh 2012-04-19 09:22:17

回答

2

試試這個,讓我知道發生什麼事,

AlertDialog.Builder builder = new AlertDialog.Builder(MixContainerInfoActivity.this); 
View view = new View(MixContainerInfoActivity.this); 
view = (View)getLayoutInflater().inflate(R.layout.unit_list, null); 
builder.setCustomTitle(titleView); 
builder.setView(view); 
containerList = (ListView)view.findViewById(R.id.unit_list_view); 
ArrayAdapter<Vector> containerAdapter = new UnitMenuAdapter(MixContainerInfoActivity.this, R.layout.custom_unit_list, containerVector);  
containerList.setAdapter(containerAdapter); 
final AlertDialog alert = builder.create(); 
alert.show(); 

containerList.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       System.out.println("Item Clicked.."); 
       alert.dismiss(); 
      } 
     }); 
+0

它的alert.show(),而不是builder.show(),我把最後AlertDialog alert = builder.create(); alert.show();之前 – user370305 2012-04-19 09:32:57

+0

alert.show()和alert.dismiss()完美工作。感謝您的gr8幫助:) – 2012-04-19 09:50:30

0

setOnItemClickListener提高。由於對話框顯示在上方列表中,因此無法點擊列表項目。相反,你應該將下面的行添加到您的建設者和刪除setOnItemClickListener

//it will dismiss the dialog automatically 
builder.setNegativeButton("OK", null); 
+0

我該如何解決這個問題? – 2012-04-19 09:21:43

+0

看到我的更新回答 – waqaslam 2012-04-19 09:22:53