gpt4 book ai didi

Android - 将参数从 AlertDialog 传递到 AlertDialog'host

转载 作者:搜寻专家 更新时间:2023-11-01 09:02:09 25 4
gpt4 key购买 nike

在我的 MainActivity 中,我生成了一个包含 2 个 EditTextDialogAlert。当我单击 DialogAlert 中的 Positive Button 时,我想恢复 MainActivity 中的 2 个 EditText

这是我的 DialogAlert 类:

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 中单击 Positive Button 时,我有一个带有“position shared”的 Toast

我想在 MainActivity 方法 onDialogPositiveClick() 中恢复我创建的参数 namedescription在我的 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());

在你的 Activity 中:

public void onDialogPositiveClick(DialogFragment dialog, String name, String description) {
Toast.makeText(this, "Position Shared: " + name + ", " + description, Toast.LENGTH_SHORT).show();

}

关于Android - 将参数从 AlertDialog 传递到 AlertDialog'host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14320787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com