2013-02-21 50 views
0

我有列表視圖用圖標,當我點擊圖標 它觸發dailog..my實現如下對話觸發一次

private void sendmessage() { 

     final Dialog dialog = new Dialog(getActivity(), 
       R.style.FullHeightDialog); 
     dialog.setContentView(R.layout.customdailog); 
     WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
     lp.copyFrom(dialog.getWindow().getAttributes()); 
     lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
     lp.height = WindowManager.LayoutParams.WRAP_CONTENT; 

     try { 
      final EditText edittext = (EditText) dialog 
        .findViewById(R.id.fbedittext); 

      spinner = (Spinner) dialog.findViewById(R.id.replyspinner); 

      Button diButton = (Button) dialog.findViewById(R.id.fbshare); 
      ImageView dialogcancelButton = (ImageView) dialog 
        .findViewById(R.id.fbreplycancel); 
      dialogcancelButton.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        dialog.dismiss(); 
        getActivity().finish(); 

       }}); 

      diButton.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) { 
        try { 
         String userComment = edittext.getText().toString(); 
         boolean postStatus=true; 

         postStatus=false; 
         } 


         postReply(userComment,postStatus); 
         getActivity().finish(); 

         } 
         } } catch (Exception e) {}}); 

      dialog.show(); 
      dialog.getWindow().setAttributes(lp); 
      } catch (Exception e) { 
      e.printStackTrace(); 
      getActivity().finish(); 
     } 

    } 

我的問題是dailog被觸發一次 例如,當我點擊圖標第一次dailog後打開 我點擊取消按鈕或按回按鈕,當我點擊第二次時dailog不打開, 不知道最新情況發生。任何幫助表示讚賞。 。

+0

你能告訴你爲什麼要使用getActivity()結束();在OnClickListener – 2013-02-21 15:47:19

+0

,因爲它是在片段類中取消dailog是使用getActivity()。finish(); ..和thx與我評論我找到了解決方案。我打電話給setoncancelListener並執行getActivity()。finish(); – teekib 2013-02-22 09:57:30

回答

0

解決了與setOnCancellistener

dialog.setOnCancelListener(new OnCancelListener() { 

      @Override 
      public void onCancel(DialogInterface dialog) { 
       getActivity().finish(); 
      } 
     });