发送到共享首选项 - Android

时间:2012-02-18 16:46:48

标签: java android sharedpreferences long-integer

我开发了一个对话框,提示用户在应用程序首次运行时输入他/她的电话号码,但我在将其添加到共享首选项时遇到问题。我从另一个视图设置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();     
    }

3 个答案:

答案 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 ...