Проблема с кастингом в Java для Android - PullRequest
1 голос
/ 13 сентября 2011

У меня есть EditText в моей программе

мой код:

Double Hi;
private EditText MyHight;
MyHight   = (EditText) findViewById(R.id.editText1);

мне нужно вставить в Hi значение MyHight

я пробую это:

MyHight.getText().toString();
Hi= (Double)MyHight;

но я получил ошибку при касте

как это исправить?

Ответы [ 3 ]

4 голосов
/ 13 сентября 2011

Попробуйте с:

Hi = Double.valueOf(MyHight.getText().toString());
1 голос
/ 13 сентября 2011

Вы не можете разыграть EditText до Double.

Однако вы можете создать новый Double из String:

Hi = new Double(MyHight.getText().toString());

или:

Hi = Double.valueOf(MyHight.getText().toString());
0 голосов
/ 14 сентября 2011

Вместо того, чтобы делать что-то вроде:

Double Hi = Double.valueOf( (EditText) findViewById(R.id.editText1)).getText().toString())

Раньше я делал стандартный кастинг, как ответ Оли, но устал от обработки ошибок и тому подобного. Итак, я написал целый класс Кастинга здесь, это пример того, что я сделал с двойниками.

public class Cast {
/**
 *  Base number cast, return the value or default
 * @param object - generic Object
 * @param defaultValue - default value to give if Object is null
 * @return - returns type Number
 */
private static Number castImpl(Object object, Number defaultValue) {
    return (object!=null && object instanceof Number) ? (Number)object : defaultValue;
}


/**
 *  Base double cast, return the value or default
 * @param object - generic Object
 * @param defaultValue - default value to give if Object is null
 * @return - returns type double
 */
public static double cast(Object object, double defaultValue) { 
    return castImpl(object, defaultValue).doubleValue();
}
}

Это также позволит вам использовать значение по умолчанию, вот как вы его используете.

Cast.cast("3", 1.0);

Я даже сделал это для массивов, чтобы конвертировать из int в плавающие массивы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...