在我的MainActivity
中,我生成一个DialogAlert
内有2EditText
s的EditText
。
当我点击MainActivity
中的正按钮时,我想恢复DialogAlert
中的2DialogAlert
s。
这里是我的班级:
public class ShareDialog extends DialogFragment{
public interface ShareDialogListener {
public void onDialogPositiveClick(DialogFragment dialog);
public void onDialogNegativeClick(DialogFragment dialog);
}
ShareDialogListener mListener;
private Handler mResponseHandler;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (ShareDialogListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement ShareDialogListener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.dialog_share, null);
final EditText name_place = (EditText)v.findViewById(R.id.sharePlaceName);
final EditText description_place = (EditText)v.findViewById(R.id.shareDescription);
builder.setView(v)
.setTitle(R.string.shareTitle)
.setPositiveButton(R.string.share, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
String name = name_place.getText().toString();
String description = description_place.getText().toString();
mListener.onDialogPositiveClick(ShareDialog.this);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogNegativeClick(ShareDialog.this);
ShareDialog.this.getDialog().cancel();
}
});
return builder.create();
}
}
我的
MainActivity
实现ShareDialog.ShareDialogListener
在我的
MainActivity
中,我有: public void onClickShare(View v) {
// Create an instance of the dialog fragment and show it
DialogFragment dialog = new ShareDialog();
dialog.show(getSupportFragmentManager(), "ShareDialog");
}
public void onDialogPositiveClick(DialogFragment dialog) {
Toast.makeText(this, "Position Shared", Toast.LENGTH_SHORT).show();
}
public void onDialogNegativeClick(DialogFragment dialog) {
Toast.makeText(this, "Cancel Share", Toast.LENGTH_SHORT).show();
}
当我点击
DialogAlert
中的正按钮时,我有一个带有“位置共享”的Toast
。我想用
onDialogPositiveClick()
方法从MainActivity
中恢复我在DialogAlert
中创建的参数名称和描述 最佳答案
只需修改onDialogPositiveClick
方法以提供参数:
public interface ShareDialogListener {
public void onDialogPositiveClick(DialogFragment dialog, String name, String description);
public void onDialogNegativeClick(DialogFragment dialog);
}
在您的警报中:
mListener.onDialogPositiveClick(ShareDialog.this, name_place.getText(), description_place.getText());
在你的活动中:
public void onDialogPositiveClick(DialogFragment dialog, String name, String description) {
Toast.makeText(this, "Position Shared: " + name + ", " + description, Toast.LENGTH_SHORT).show();
}