有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android的Fragment中创建Yes/NO警报对话框

这是我的代码,我评论了我需要的。我尝试了一些代码,但它似乎与Fragment不兼容

public class main extends Fragment {

    ImageButton imagebutton;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.main, container, false);

        imagebutton = (ImageButton) rootView.findViewById(R.id.im);

        imagebutton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //Open Yes/No Dialog

                //if Yes do something
            }
        });

    }
}

共 (2) 个答案

  1. # 1 楼答案

    尝试以下方法:

       private void createAndShowAlertDialog() {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setTitle("My Title");
         builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  //TODO
                  dialog.dismiss();
             }
         });
         builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  //TODO
                  dialog.dismiss();
             }
         });
         AlertDialog dialog = builder.create();
         dialog.show();
       }
    
  2. # 2 楼答案

    class MyDialogFragment extends DialogFragment{
        Context mContext;
    public MyDialogFragment() {
        mContext = getActivity();
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
        alertDialogBuilder.setTitle("Really?");
        alertDialogBuilder.setMessage("Are you sure?");
        alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "CLick-Click!!",Toast.LENGTH_LONG).show();
            }
        });
    
        alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });
    
    
        return alertDialogBuilder.create();
    }
    }
    

    要创建对话框调用,请执行以下操作:

    new MyDialogFragment().show(getFragmentManager(), "MyDialog");

    要从某处取消对话框,请执行以下操作: ((MyDialogFragment)getFragmentManager().findFragmentByTag("MyDialog")).getDialog().dismiss();



    尝试使用以下代码段:

    AlertDialog.Builder mDialog = new AlertDialog.Builder(MyClassNane.this);
    mDialog.setTitle("Title");
    mDialog.setMessage("Do you want to delete ?");
    mDialog.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int which) {
                        Toast.makeText(getApplicationContext(),
                        "Click-Click!!",Toast.LENGTH_LONG).show();
                    }
                    dialog.cancel();
                }
            });
    
    mDialog.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
    
                public void onClick(DialogInterface dialog,
                        int which) {
                    dialog.cancel();
                }
            });
    AlertDialog alert = mDialog.create();
    alert.show();