我遇到了这个问题:我无法获取EditText(int)值,将其转换为字符串然后在Alert Dialog中使用它。
(我正在进行电话号码验证。不是一个先进的!只是简单的确认新用户真实。) 这是我的代码:
sms_verification:
public class sms_verification extends AppCompatActivity {
ImageButton send;
EditText text;
String myEditValue;
public static int phone;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sms_verification);
send = (ImageButton)findViewById(R.id.imageButton);
text = (EditText)findViewById(R.id.editText);
}
public void AlertDialog(View view) {
myEditValue = text.getText().toString();
phone = Integer.parseInt(myEditValue);
AlertDialog.Builder alertdlg = new AlertDialog.Builder(this);
alertdlg.setMessage("Confirmation")
.setCancelable(false)
.setMessage("Is " + phone +" your phone number?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setContentView(R.layout.sms_verification2);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertdlg.create();
alertDialog.show();
}
}
答案 0 :(得分:0)
对不起,我还不能发表评论。但你的电话号码是否有破折号?查看对话框,为什么还需要解析整数值?
.setMessage("Is " + myEditValue +" your phone number?")
答案 1 :(得分:0)
首先,您要将String
转换为int
,然后再将int
转换为String
,这没有任何意义。
就这样做
"Is " + text.getText().toString() +" your phone number?"
答案 2 :(得分:-2)
你应该可以使用:
String.valueOf(phone)
e.g。
.SetMessage("Is " + String.valueOf(phone) + " your phone number")