2016-12-03 14 views
0

Builder。私は却下または取り消しするときに何らかのアクションを実行したい。だから私はsetOnDismissListenersetOnCancelListenerのようなコードを使用しました。しかし、この両方の方法は、AlertDialog.Builderを消すときに検出しません。 AlertUtilsgetBuilder方法は次のようにAlertDialog.BuilderはAPI 17で動作しません。android

private static void openOptionDialog(final Context context, Item[] items, String title, DialogInterface.OnClickListener positiveClick) { 
     ListAdapter adapter = new ArrayAdapter<Item>(
       context, android.R.layout.select_dialog_item, items) { 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       View view = super.getView(position, convertView, parent); 
       TextView textView = (TextView) view.findViewById(android.R.id.text1); 
       Item item = getItem(position); 
       textView.setText(item.string); 
       textView.setTextSize(16f); 
       textView.setCompoundDrawablesWithIntrinsicBounds(item.icon, 0, 0, 0); 
       textView.setCompoundDrawablePadding(BDevice.getPixelFromDp(context, 15)); 
       return view; 
      } 
     }; 

     AlertDialog.Builder builder = AlertUtils.getBuilder(context); 
     builder.setTitle(title); 
     builder.setAdapter(adapter, positiveClick); 
     builder.create().show(); 

     builder.setOnDismissListener(new DialogInterface.OnDismissListener() { 
      @Override 
      public void onDismiss(DialogInterface dialog) { 
       WidgetSettings preference = new WidgetSettings(context); 
       if(preference.canWidgetTooteets()){ 
        preference.clear(); 
       } 
      } 
     }); 

     builder.setOnCancelListener(new DialogInterface.OnCancelListener() { 

      public void onCancel(DialogInterface dialog) { 
       WidgetSettings preference = new WidgetSettings(context); 
       if(preference.canWidgetTooteets()){ 
        preference.clear(); 
       } 
      } 
     }); 

    } 

public static AlertDialog.Builder getBuilder(Context context) { 
     return new AlertDialog.Builder(context, R.style.Dialog); 
    } 

あなたは、このための解決策を見つけるために私を提案してくださいもらえますか?前もって感謝します。

+0

を? –

+0

@RavishSharma AlertDialog.Builderを終了するときに何らかのアクションを実行したい。 – Sangeetha

+1

@Sangeetha * AlertDialog.Builder *の代わりに* AlertDialog *を試し、* setOnDismissListener *を追加して動作させてください。 –

答えて

0

AlertDialogのみの代わりに、 AlertDialog.Builder で試してみて、それが動作するようにsetOnDismissListenerを追加します。

AlertDialog alert = builder.create(); 
alert.setOnDismissListener(yourDismissListener); 
alert.show(); 

AlertDialog alert = builder.create(); 
alert.setOnCancelListener(yourCancelListener); 
alert.show(); 
0

alert.cancel()の代わりalert.dismiss()を試してみて、このようなOnCancelListener追加:UはAleartを使用するか、またはDismis OKのようなaleartボタンにアクションを実行したい

builder.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialog) { 
      dialog.dismiss(); 
     } 
    }); 
関連する問題