Я создаю класс для пользовательского диалога и использую PrettyDialog. Я хочу редактировать текст в диалоге. Я использую Inflater, но ошибка: getActivity -> mHost: null. Я попытался создать метод getTextDialogFragment(), затем ошибка getLayoutInflater mHost null. Что я могу сделать, чтобы это исправить? ТекстДиалогФрагмент:
public class TextDialogFragment extends DialogFragment {
private EditText edtDialog;
public interface SingleChoiceListener{
void onPositiveButtonClicked();
void onNegativeButtonClicked();
}
TextDialogFragment.SingleChoiceListener mListener;
@NonNull
public PrettyDialog onCreateTextDialog(Context context) {
PrettyDialog prettyDialog = new PrettyDialog(context);
LayoutInflater inflater=getActivity().getLayoutInflater();
View view=inflater.inflate(R.layout.dialog_text,null);
prettyDialog.setContentView(view);
prettyDialog.setMessage("sdf");
prettyDialog.setIcon(R.drawable.question_icon);
prettyDialog.setCanceledOnTouchOutside(false);
prettyDialog.addButton("EVET", R.color.pdlg_color_white, R.color.pdlg_color_green, new PrettyDialogCallback() {
@Override
public void onClick() {
mListener.onPositiveButtonClicked();
prettyDialog.dismiss();
}
});
prettyDialog.addButton("HAYIR", R.color.pdlg_color_white, R.color.pdlg_color_red, new PrettyDialogCallback() {
@Override
public void onClick() {
mListener.onNegativeButtonClicked();
prettyDialog.dismiss();
}
});
edtDialog=view.findViewById(R.id.edtDialog);
prettyDialog.show();
return prettyDialog;
}
public void setListener(TextDialogFragment.SingleChoiceListener singleChoiceListener){
mListener=singleChoiceListener;
}
}
этот макет, который я хочу добавить в диалог. Диалог должен работать edittext+prettydialog:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp">
<EditText
android:id="@+id/edtDialog"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:focusable="true"
android:hint="Giriş yapınız"
android:gravity="center"
android:imeOptions="actionDone"
android:inputType="text"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="40sp">
</EditText>
</RelativeLayout>
onCreateTextDialog()
в методonCreateDialog()
DialogFragment
. Вы можете использоватьgetActivity()
вместо параметраContext
. Я не совсем уверен, для чего предназначеноonCreateTextDialog()
, но это как бы предполагает, что вы, возможно, неправильно используетеDialogFragment
. - person Mike M.   schedule 18.12.2019BaseNavigator
и почему это требует, чтобы вы передавали туда свой собственныйContext
, но в настоящее время вашTextDialogFragment
на самом деле не используется какDialogFragment
. Если выshow()
PrettyDialog
вернулись изonCreateTextDialog()
, то у вас просто старый добрыйDialog
. Если вместо этого вы попытаетесьshow()
создать экземплярTextDialogFragment
, это будет пустойDialog
, а неPrettyDialog
, который вы настраиваете в этом методе. - person Mike M.   schedule 18.12.2019