Длинная отправка в общие настройки - Android - PullRequest
0 голосов
/ 18 февраля 2012

Я разработал диалоговое окно, в котором пользователю предлагается ввести свой номер телефона при первом запуске приложения, но у меня возникают проблемы при добавлении его в общие настройки.У меня есть SP, настроенный и работающий корректно из другого вида (для добавления / редактирования информации), и я смог зафиксировать идентификатор пользователя.Проблема в том, что я использую Long для номера телефона вместо строки, поэтому я продолжаю получать ошибки и не могу понять, что мне нужно делать.Я думаю, что редактируемый также может быть проблемой.Я попытался изменить getText () на getLong (), но это, похоже, не работает, и я не могу преобразовать его в строку, потому что номер телефона распознается как длинный в моем SP.Как я могу передать 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 ]

2 голосов
/ 18 февраля 2012

Алекс, вы можете сделать следующее, чтобы поместить Long в SP:

String value = input.getText().toString();

Editor editor = shared.edit();
editor.putLong("PHONE", Long.valueOf(value));
editor.commit();
0 голосов
/ 18 февраля 2012

изменить

Редактируемое значение = input.getText ();

до

String value = input.getText().toString();

Это даст вам строковое значение текстового поля.

Теперь для хранения.

Если и только если вы уверены (и подтвердили), что value здесь содержит только цифры, выполните:

editor.putLong("PHONE", Long.valueOf(value));

все же я бы предпочел

editor.putString("PHONE",value);

и вы можете в любое время получить его со строкой, а затем изменить его на Long при необходимости ...

0 голосов
/ 18 февраля 2012

извините за мой английский

Вы не конвертируете значение String в Long

используйте parseLong(String s, int radix) метод, подобный этому: parseLong(value, 10)

...