对话触发一次

问题描述:

我有列表视图用图标,当我点击图标 它触发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

解决了与setOnCancellistener

dialog.setOnCancelListener(new OnCancelListener() { 

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