我开发了一个对话框,提示用户在应用程序首次运行时输入他/她的电话号码,但我在将其添加到共享首选项时遇到问题。我从另一个视图设置SP并正常工作(添加/编辑信息),我能够提交用户ID。问题是我使用Long来代替电话号码而不是字符串,所以我不断收到错误,似乎无法弄清楚我需要做什么。我认为可编辑也可能是一个问题。我已经尝试将getText()更改为getLong(),但这似乎不起作用,我无法将其转换为字符串,因为电话号码在我的SP中被识别为Long。如何将Long提交给共享首选项?感谢。
这是我的代码:
if(phone == 0) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Please Enter Your Phone Number");
alert.setMessage("You must enter your phone number in order to use this application");
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Editable value = input.getText();
Editor editor = shared.edit();
editor.putLong("PHONE", value); //wants me to change putLong to putString
editor.commit();
}
});
alert.show();
}
答案 0 :(得分:2)
亚历克斯,你可以做以下事情把一个龙放入SP:
String value = input.getText().toString();
Editor editor = shared.edit();
editor.putLong("PHONE", Long.valueOf(value));
editor.commit();
答案 1 :(得分:0)
抱歉我的英文
您没有将String值转换为Long
使用parseLong(String s, int radix)
这样的方法:parseLong(value, 10)
答案 2 :(得分:0)
更改
可编辑值= input.getText();
到
String value = input.getText().toString();
这将为您提供文本框的字符串值。
现在存储。
当且仅当您确定(并且您已经验证)value
此处仅包含数字时,请执行以下操作:
editor.putLong("PHONE", Long.valueOf(value));
仍然我更喜欢
editor.putString("PHONE",value);
您可以随时使用字符串检索它,然后根据需要将其更改为Long ...