我尝试设置自定义AlertDialog,它有2个按钮,取消和正按钮。我需要点击正面按钮,我可以更改文本,而不是关闭对话框。
粗略的流程是正面按钮会说"发送",当它点击它会改变为"正在发送..."然后代码会发送一些数据到我们的服务器,如果响应为真,关闭对话框,如果它是假的,或超时等显示错误消息(Toast)并保持对话框打开。
我有代码将数据发送到服务器,处理响应等,我只是想不出如何编辑AlertDialog类实现这一点。有谁知道我是怎么做的?
目前的测试代码:
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
b.setView(getActivity().getLayoutInflater().inflate(R.layout.dialog_single_text, null));
b.setTitle("Forgotten Password");
b.setMessage("Please enter your email");
b.setPositiveButton("Send", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(), "Sending...", Toast.LENGTH_SHORT).show();
}
});
b.create().show();
答案 0 :(得分:7)
您可以将onShowListener添加到AlertDialog
d.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Do something
//Dismiss once everything is OK.
d.dismiss();
}
});
}
});
答案 1 :(得分:0)