با سلام در قسمت پیاده سازی به روش کست کردن در خود مین اگتیویتی که مثل ریسایلر ویو در کانستراکتور ورودی اینترفیس رو میدیم و در بدنه کانسراکتور مقدار دهی میشه و بعد از قسمت مین اگتیوتی میایم از کلاس دیالوگ در به صورت اینستنس وریبل تعریف کرده و همانجا یه نمونه میگیریم و بعد ورودی اون کلمه دیس رو میدیم چون مین اگتیوتیی هم اون اینترفیس رو پیاده سازی کرده
کد کلاس دیالوگ :
public class DialogFrag extends DialogFragment {
private MyDialogEventListener myDialogEventListener;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
// myDialogEventListener = (MyDialogEventListener) context;
}
public DialogFrag(MyDialogEventListener myDialogEventListener){
this.myDialogEventListener = myDialogEventListener;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
View view = LayoutInflater.from(getContext()).inflate(R.layout.my_dialog,null,false);
builder.setView(view);
Button btnOk = view.findViewById(R.id.btn_dialog_success);
Button btnCancel = view.findViewById(R.id.btn_dialog_concel);
EditText et_showDialogMain = view.findViewById(R.id.et_dialog_showDialogMain);
btnOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et_showDialogMain.getText().length()>0){
myDialogEventListener.onClickOk(et_showDialogMain.getText().toString());
dismiss();
}else {
et_showDialogMain.setError("Fill in the input");
}
}
});
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialogEventListener.onClickCancel();
dismiss();
}
});
return builder.create();
}
}
کد کلاس مین :
public class MainDialogActivity extends AppCompatActivity implements MyDialogEventListener{
private TextView tvShowDialogMain;
private Button btnShow;
private DialogFrag dialogFrag = new DialogFrag(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog_main);
btnShow = findViewById(R.id.btn_main_fragmentDialog);
tvShowDialogMain = findViewById(R.id.tv_mainDialog_showReturnDialog);
btnShow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogFrag.setCancelable(false);
dialogFrag.show(getSupportFragmentManager(),null);
}
});
}
@Override
public void onClickOk(String data) {
tvShowDialogMain.setText(data);
}
@Override
public void onClickCancel() {
tvShowDialogMain.setText("No Name");
// finish();
}
}
این نمونه دیگه پیاده سازی بدون کست در متد خود دیالوگ
اگه اشکالی و سوالی بود خوشحال میشم نظرتون رو بگین