2017-07-28 9 views
1

私は2つのシークバーを持っており、その値に基づいて数学を行い、結果をテキストビューに入れています。シークバーの進捗状況を変更しているときに、テキストビューが「点滅」しています。通常は値が削除され、新しいものが挿入されるので、私は仮定します。エミュレータにコードをインストールすると、シークバーを解放した後に計算値が消えてしまうことがあります。コードをデバイスに置くと、その値は表示されなくなります。何が問題なの?シークバーに基づく計算値がテキストビューに表示されない

weight = weightSeekBar.getProgress(); 
height = ((double) heightSeekBar.getProgress()) /100; 
double bMI = weight/(height*height); 
bMIValueText.setText("BMI value: " + bMI); 
Log.d(TAG,"weight= " + weight + " height= " + height + " BMI = " + bMI); 

注: はここにいくつかのコードである「BMI値」テキストは、それぞれの変更後に表示されます。このコードはSeekbarリスナーの

public void onProgressChanged(SeekBar seekBar, int i, boolean b) 

のメソッドで実装されました。

+1

TextViewは、10進表現の値を正しく表示するのに十分な幅ですか?小数点の後の固定桁数を表示するには、 'bMI'の値をフォーマットしてみてください。 – SpaceBison

+0

ログのbMI値を表示 –

+0

@MMMMシークバーに使用している値を投稿できますか?問題があなたの値であると思います。 –

答えて

1

小数点以下の長さの値の場合、TextViewの幅が不十分でテキストが消えてしまうことがあります。小数点以下の桁数を常に収まるように制限することができます(たとえば、String.format()を使用)。

-1

コードの量は分かりませんが、実行時にui(ビュー)の一部を変更したい場合は、ハンドラを使用する必要があります。

+0

私はそれが質問の答えになるとは思わない。 – MMMM

関連する問題