班级:
public class PromptDialog extends DialogFragment{
public interface IPromptDialogListener{
public void onPromptDialogOk(String promptText);
}
private Context _context;
private IPromptDialogListener _consumer;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final EditText prompt=new EditText(_context);
builder.setView(prompt);
builder.setTitle("The Title");
builder.setMessage("The Message");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
_consumer.onPromptDialogOk(prompt.getText().toString());
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
builder.show();
return super.onCreateDialog(savedInstanceState);
}
public void showPrompt(IPromptDialogListener consumer,Context context,FragmentManager fragmentManager){
_consumer=consumer;
_context=context;
show(fragmentManager,"prompt");
}
}
活动: 公共类TheActivity扩展了Activity 实现PromptDialog.IPromptDialogListener {
PromptDialog promptDialog;
public void btNuevaRuta_click(View view){
if (promptDialog==null){
promptDialog=new PromptDialog();
}
promptDialog.showPrompt(this,this,getFragmentManager());
}
@Override
public void onPromptDialogOk(String promptText) {
Toast.makeText(this,promptText,Toast.LENGTH_LONG).show();
}
}
结果: 打开提示对话框时,显示:
按下后退按钮:
最后显示的文字是: http://i.imgur.com/hkUIOEO.png
对话框打开后会发生什么?
答案 0 :(得分:0)
我发现了错误。 Class PromptDialog的最后几行打开了两个对话......
您只需要返回创建的对话框并自行生成删除
行:
return builder.show();
//return super.onCreateDialog(savedInstanceState);
替换为:
function getDateFormat(dateStr) {
var format = default_format;
// Check in map for format
// If you get the format in map, return that else return a default format.
return format;
}