Выражения показывают идентификатор вместо значения - PullRequest
0 голосов
/ 08 июля 2011

У меня есть следующий код:

private EditText LeftBeam, BeamDistance, RightBeam;
private TextView Distance;
private float HeigtDifferenceBeams;
private float HeightLeftBeam, HeightRightBeam;


HeightLeftBeam = Float.parseFloat(LeftBeam.getText().toString());
HeightRightBeam = Float.parseFloat(RightBeam.getText().toString());

HeigtDifferenceBeams = Math.abs(HeightLeftBeam - HeightRightBeam);
DistanceBetweenBeams = Math.sqrt((Math.pow(HeigtDifferenceBeams, 2) + Math.pow(Float.parseFloat(BeamDistance.getText().toString()), 2)));

Distance.setText(String.format("%.2f",DistanceBetweenBeams));

Когда я запускаю это на своем устройстве, я получаю FC. (07-08 20: 22: 43.399: ОШИБКА / AndroidRuntime (25183): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.tricky_design.x / com.tricky_design.x.main}: java.lang.NullPointerException

Когда я запускаю его в режиме отладки, он попадает в представление выражения «DistanceBetweenBeams» vis value (id = 830126972712).

Что я делаю не так?

Уже большое спасибо за вашу помощь.

Редактировать

Я создал экземпляр используемых editText и TextViews:

    LeftBeam = (EditText) findViewById (R.id.LeftBeam);
    LeftBeam.setOnLongClickListener(LongClickListener);
    LeftBeam.addTextChangedListener(TextChanged);

    RightBeam = (EditText) findViewById (R.id.RightBeam);
    RightBeam.setOnLongClickListener(LongClickListener);
    RightBeam.addTextChangedListener(TextChanged);

    Distance = (TextView) findViewById (R.id.DistanceTextView);

1 Ответ

1 голос
/ 08 июля 2011

Ваш Distance TextView не инициализирован, поэтому он нулевой.Это проблема.

Distance необходимо сделать объектной ссылкой на TextView в вашем макете, обычно используя findviewbyid().

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