2016-04-13 12 views
0

ダイアログボックス内でラジオボタンを使用しているときに[キャンセル]ダイアログボックス内のラジオボタンを使用しているときに、ダイアログボックスのキャンセルボタンが機能しない

public void bookappointment() 
{ 
    LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); 
    final View promptView = layoutInflater.inflate(R.layout.bridaldialogbox, null); 
    android.support.v7.app.AlertDialog.Builder alertDialogBuilder = new android.support.v7.app.AlertDialog.Builder(getActivity()); 
    alertDialogBuilder.setView(promptView); 
    final android.support.v7.app.AlertDialog alert = alertDialogBuilder.create(); 
    alert.show(); 
    alert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

    final EditText userstatus=(EditText) promptView.findViewById(R.id.choosen); 
    address = (EditText) promptView.findViewById(R.id.address); 
    radioGroup = (RadioGroup) promptView.findViewById(R.id.radioGroup); 
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      position = radioGroup.indexOfChild(promptView.findViewById(checkedId)); 
      position1 = radioGroup.indexOfChild(promptView.findViewById(radioGroup.getCheckedRadioButtonId())); 
      switch (position) { 
       case 0: 
        userstatus.setText("Home"); 
        bridal_status = userstatus.getText().toString(); 
        break; 
       case 1: 
        userstatus.setText("Mahal"); 
        bridal_status = userstatus.getText().toString(); 
        break; 
      } 
     } 
    }); 

    Button ok_buy = (Button) promptView.findViewById(R.id.ok_bridal); 
    ok_buy.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      alert.dismiss(); 
     } 
    }); 

    Button no_cancel = (Button) promptView.findViewById(R.id.cancel_bridal); 
    no_cancel.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      alert.dismiss(); 
     } 
    }); 
} 

そのうまく働いたが、今、そのは5または6回だけダイアログをボタンをクリックした後の良好な動作していないラジオボタンを使用していたときにも、そこにいくつかの他の場所では機能的に同じダイアログを使用していますボックスが閉じられています

答えて

0

alert.setPositiveButton()とalert.setNegativeButton()を使用できますか? それらを試して、それが機能するかどうかを確認してください。

0

あなたのok_buyとno_cancelボタンの両方でアクションとして

alert.dismiss(); 

を持っています。あなたはあなたのok_buyで肯定的な何かをすることを意味しますか?

+0

はい、私は、ユーザーが両方のボタンをクリックすると、ダイアログボックスを閉じたいです –

0

@ Ruben2112はこのリンク(Android alert dialog and set positive button)を見て、肯定と否定のボタンを設定しました。そしておそらく否定ボタン(キャンセル)ケーシーマレーは(dialog.dismiss();またはdialog.cancel())言ってみてください

かであなたがボタンを設定

0

alert.show()を設定するため、このシンプルなandroid dialog popup libraryを試すことができます。あなたの活動に使うのはとても簡単です。

ここ

作業コードは、この作業を行うには

public void bookappointment(){ 
final AlertDialog dialog = Pop.on(getActivity()) 
    .with() 
    .cancelable(false) //ignore if not needed 
    .layout(R.layout.bridaldialogbox) 
    .show(new Pop.View() { 
     @Override 
     public void prepare(View view) { 
      final EditText userstatus=(EditText) promptView.findViewById(R.id.choosen); 
      address = (EditText) view.findViewById(R.id.address); 
      radioGroup = (RadioGroup) view.findViewById(R.id.radioGroup); 
      radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(RadioGroup group, int checkedId) { 
        position = radioGroup.indexOfChild(view.findViewById(checkedId)); 
        position1 = radioGroup.indexOfChild(view.findViewById(radioGroup.getCheckedRadioButtonId())); 
        switch (position) { 
         case 0: 
          userstatus.setText("Home"); 
          bridal_status = userstatus.getText().toString(); 
          break; 
         case 1: 
          userstatus.setText("Mahal"); 
          bridal_status = userstatus.getText().toString(); 
          break; 
        } 
       } 
       Button ok_buy = (Button) view.findViewById(R.id.ok_bridal); 
       ok_buy.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         dialog.dismiss(); 
        } 
       }); 

       Button no_cancel = (Button) view.findViewById(R.id.cancel_bridal); 
       no_cancel.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
         dialog.dismiss(); 
        } 
       });    
      }); 
     } 
    }); 
} 

で、1時間を含めるあなたのGradleの依存関係が

dependencies { 
    compile 'com.vistrav:pop:2.0' 
} 
関連する問題