Android returner方法中onClick()的返回值
我对DialogInterface.OnClickListener()中onClick方法的返回值有一些问题。 我可以在对话框中返回字符串形式的edittext。当我一次调用此方法而不在以后将其分配给其他变量时Android returner方法中onClick()的返回值,android,Android,我对DialogInterface.OnClickListener()中onClick方法的返回值有一些问题。 我可以在对话框中返回字符串形式的edittext。当我一次调用此方法而不在以后将其分配给其他变量时 //Exam Code public String getPhoneNumber(){ String phoneNumber = ""; AlertDialog.Builder alert = new AlertDialog.Builder(contex
//Exam Code
public String getPhoneNumber(){
String phoneNumber = "";
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle("Please input phone number");
alert.setMessage("ex. 66898765432");
final EditText phoneNumberEditText = new EditText(context);
phoneNumberEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
alert.setView(phoneNumberEditText);
alert.setPositiveButton("Submit",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
phoneNumber = phoneNumberEditText.getText().toString();
{
});
alert.show();
return phoneNumber;
}
在考试代码中,它将返回“”返回。我如何解决这个问题
感谢您的回答:)我不确定这是否是您的格式或代码结构的副作用,但请将您的
警报。设置积极按钮..
部分更改为以下内容:
alert.setPositiveButton("Submit",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
phoneNumber = phoneNumberEditText.getText();
}
});
请记住,
phonenumberditext.getText()
已经返回了一个字符串,因此您也不需要.toString()
。如果您已经在警报对话框中输入了数字,那么这应该可以正常工作。您可以使用一个干净的示例。我不确定这是否是您的格式或代码结构的副作用,但请将您的警报。设置积极按钮..
部分更改为以下内容:
alert.setPositiveButton("Submit",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
phoneNumber = phoneNumberEditText.getText();
}
});
请记住,phonenumberditext.getText()
已经返回了一个字符串,因此您也不需要.toString()
。如果您已经在警报对话框中输入了数字,那么这应该可以正常工作。您可以使用一个干净的示例。您的问题是试图从OnClickListener
返回一个值。侦听器应该等待use操作,而其余代码则按顺序运行。您需要将值从OnClickListener
传递到其他方法或全局变量
有关实现此目的的各种方法的讨论,请参阅。您的问题是试图从OnClickListener
返回值。侦听器应该等待use操作,而其余代码则按顺序运行。您需要将值从OnClickListener
传递到其他方法或全局变量
有关实现这一点的各种方法的讨论,请参阅。事实并非如此。任何TextView
的getText()
方法都返回一个CharSequence
,因此必须强制转换它,或者调用toString()
方法将其传递到字符串
变量中。这不是真的。任何TextView
的getText()
方法都返回一个CharSequence
,因此必须强制转换它,或者调用toString()
方法将其传递到字符串
变量中。+1,这是正确的解决方案。您的方法会在设置电话号码之前立即返回。然后,在将来的某个时候,电话号码被设置为一个值,但在该值之后再也不会读取。+1,这是正确的解决方案。您的方法会在设置电话号码之前立即返回。然后,在将来的某个时候,电话号码被设置为一个值,但在该值之后就不再读取。