我必须从方法中返回一些值。
现在在方法内部我打开了一个AlertDialog
。
所以我的问题是我的方法在打开AlertDialog
时返回值。
我希望from方法只有在对话框被解除时返回String值。
我的代码是
public String capture(final String uid, final String id) {
final Dialog dialog = new Dialog(WebActivity.this,
android.R.style.Theme_Holo_Light_Dialog);
dialog.setContentView(R.layout.dialog_custom);
ImageView image = (ImageView) dialog.findViewById(R.id.image);
Button dialogButton = (Button) dialog
.findViewById(R.id.dialogButtonOK);
mCapture= new Capture(WebActivity.this);
int isInitialised = mCapture.initialize();
final String res = mCapture.capture(uid, id,
image, dialog);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
// return response;
scenario1Response = res;
}
});
if (!dialog.isShowing()) {
return scenario1Response;
}
}
但它是说添加退货声明。虽然我只想返回,但对话框已经点击了
请帮助我如何实现它?
提前致谢
答案 0 :(得分:0)
您可以像这样使用对话框onDismissListener
:
alertDialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
//your logic of returning goes here
}
});
希望它有所帮助。
答案 1 :(得分:0)
您可以通过不同的方法实现此目的,您不必通过函数返回值。 您可以将值分配给某个全局变量,同时取消对话框并在需要的位置使用它。
public void capture(final String uid, final String id) {
final Dialog dialog = new Dialog(WebActivity.this,
android.R.style.Theme_Holo_Light_Dialog);
dialog.setContentView(R.layout.dialog_custom);
ImageView image = (ImageView) dialog.findViewById(R.id.image);
Button dialogButton = (Button) dialog
.findViewById(R.id.dialogButtonOK);
mCapture= new Capture(WebActivity.this);
int isInitialised = mCapture.initialize();
final String res = mCapture.capture(uid, id,
image, dialog);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
// return response;
scenario1Response = res; // this can be your global variable
}
});
}
并更改您调用此函数的位置,例如:
VARIABLE myval = capture(param1, param2);
像这样:
capture(param1, param2);
VARIABLE myval = scenario1Response;
希望你明白我的意思..