Android 如何更改正在运行的AlertDialog的文本

Android 如何更改正在运行的AlertDialog的文本,android,android-edittext,android-alertdialog,Android,Android Edittext,Android Alertdialog,单击从CalendarPickerFragment中选择日期的按钮后,如何更改AlertDialog上文本的当前字符串 这是警报对话框 public class FragmentInicio extends Fragment{ private static String date; public void addDate(){ View view = (LayoutInflater.from(getActivity())).inflate

单击从CalendarPickerFragment中选择日期的按钮后,如何更改
AlertDialog
上文本的当前字符串

这是警报对话框

    public class FragmentInicio extends Fragment{
       private static String date;

        public void addDate(){

        View view = (LayoutInflater.from(getActivity())).inflate(R.layout.alert_dialog,null);

      AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
      alertDialog.setView(view);

      final TextView date_Text = view.findViewById(R.id.dateEditText);
      final ImageButton dateButton= view.findViewById(R.id.tareaFechaButton);
      dateButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CalendarPickerFragment newFragment = new CalendarPickerFragment();
            newFragment.show(getFragmentManager(), "DatePicker");

        }
    });

      date_Text.setText(date);

      alertDialog.setTitle("New Date");
      alertDialog.setCancelable(true).setPositiveButton("Save", new 
  DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
           //Some stuff
        }
    });

    alertDialog.setNegativeButton("Cancel", new 
   DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        }
    });
  Dialog dialog = alertDialog.create();
dialog.show();

}

public static void displaydate(int year, int monthOfYear, int dayOfMonth) {
    date = String.format("%02d", dayOfMonth) + "/" + String.format("%02d", monthOfYear + 1) + "/" +
            String.format("%02d", year);
    Log.d("DTAG", "date: "+date);
}
CalendarPickerFragment

public class CalendarPickerFragment extends DialogFragment implements  DatePickerDialog.OnDateSetListener {

private CalendarPickerFragment.OnDateReceiveCallBack mListener;
private Context context;

public interface OnDateReceiveCallBack {
    public void onDateReceive(int dd ,int mm, int yy);
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    this.context = context;

    try {
        mListener = (CalendarPickerFragment.OnDateReceiveCallBack) context;
    } catch (ClassCastException e) {
        throw new ClassCastException(context.toString() + " must implement OnDateSetListener");
    }
}

public CalendarPickerFragment(){
}



@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    final Calendar cal = Calendar.getInstance();
    int year = cal.get(Calendar.YEAR);
    int month = cal.get(Calendar.MONTH);
    int day = cal.get(Calendar.DAY_OF_MONTH);

    return new DatePickerDialog(getActivity(), this, year, month, day);
}

@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
    Log.d(TAG, i + "/" + "/" + i1 + "/" + i2);
    mListener.onDateReceive(i,i1,i2);
}

好的,您可以使用您在
alertDialog
下面应该是您的
日历PickerFragment

    public class CalendarPickerFragment extends DialogFragment implements  DatePickerDialog.OnDateSetListener {

        private CalendarPickerFragment.OnDateReceiveCallBack mListener;
        private Context context;

        private static CalendarPickerFragment.OnDateReceiveCallBack mListenerForAlertDialog;

        public interface OnDateReceiveCallBack {
            public void onDateReceive(int dd, int mm, int yy);
        }

        public static CalendarPickerFragment getInstance(CalendarPickerFragment.OnDateReceiveCallBack callback) {
            mListenerForAlertDialog = callback;
            return new CalendarPickerFragment();
        }

        @Override
        public void onAttach(Context context) {
            super.onAttach(context);
            this.context = context;

            try {
                mListener = (CalendarPickerFragment.OnDateReceiveCallBack) context;
            } catch (ClassCastException e) {
                throw new ClassCastException(context.toString() + " must implement OnDateSetListener");
            }
        }

        public CalendarPickerFragment() {
        }


        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {

            final Calendar cal = Calendar.getInstance();
            int year = cal.get(Calendar.YEAR);
            int month = cal.get(Calendar.MONTH);
            int day = cal.get(Calendar.DAY_OF_MONTH);

            return new DatePickerDialog(getActivity(), this, year, month, day);
        }

        @Override
        public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
            Log.d("tag", i + "/" + "/" + i1 + "/" + i2);
            mListener.onDateReceive(i, i1, i2);
            mListenerForAlertDialog.onDateReceive(i, i1, i2);
        }

    }
现在,按如下方式初始化该
fragmnet

CalendarPickerFragment newFragment =  CalendarPickerFragment.getInstance(new CalendarPickerFragment.OnDateReceiveCallBack() {
                @Override
                public void onDateReceive(int dd, int mm, int yy) {
                    // boom you wil get the call back on each date selection here
                    //eidtTextOfALertDialog.setText("whatEver")
                }
            });
            newFragment.show(getFragmentManager(), "DatePicker");

如果可以在日期选择器中提供警报对话框xml文件,则有一个名为onDateSelectedListner的接口。它在其回调函数onDateSet中返回日期这是一种可以更改编辑文本的方法value@AdeelTurk你能告诉我怎么做吗?我已经试过了way@AlfonsoBrice尼诺,你能分享CalendarPickerFragment代码吗?然后我可以告诉你确切的答案。我从你的问题中得到的是,你想在日期选择时在edittext中显示所选的日期或任何其他文本..天哪!很有效,非常感谢你。你是个天才。