简短形式:我尝试将Double Value移交给带有Double.toString的textView,但textView始终显示" Infinity"而不是真正的价值。如果有值,如果它为空,则显示0.0。
下面我试图解释我的应用程序是如何构建(构建)
类:
MainActivity.java
FirstFragment.java
SecondFragment.java
Calculator.java
布局:
first_frag.xml
second_frag.xml
让我更容易理解我不会发布整个代码,因为那会很多!
基本上我在SecondFragment.java的这个部分挣扎:
public void fragmentBecameVisible() {
String alcLevel = Double.toString(calc.getCurrentLevel());
txtAlcLvl.setText(alcLevel);
}
Calculator.java:
public double getCurrentLevel(){
double alcTotal = 0.0;
if (consumption.size() > 0){
alcHigh = consumption.get(0).getAlcTotal()/person.getDistribution();
for (int i = 0; i < consumption.size()-1; i++){
alcTotal += consumption.get(i).getAlcTotal()/person.getDistribution()
-(consumption.get(i+1).getDrinkTime()-consumption.get(i).getDrinkTime())*0.15/3;
if (alcTotal < 0){
alcTotal = 0.0;
}
if (alcHigh < (alcTotal + consumption.get(i+1).getAlcTotal()/person.getDistribution())){
alcHigh = alcTotal + consumption.get(i+1).getAlcTotal()/person.getDistribution();
}
}
alcTotal += consumption.get(consumption.size()-1).getAlcTotal()/person.getDistribution()
-(consumption.get(consumption.size()-1).getTime()-consumption.get(consumption.size()-1).getDrinkTime())*0.15/3;
if (alcTotal < 0){
alcTotal = 0.0;
}
return alcTotal;
}else{
return 0.0;
}
}
虽然你不必理解背后的整个数学,但事实上,来自second_frag.xml的textView:
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="New Text"
android:id="@+id/txtAlcLvl" />
没有显示正确的Double Value,而是显示&#34; Infinity&#34;
我在Eclipse中拥有完全相同的代码,但不知怎的,它的工作正常。
通常我会说,我在某个地方做了一些愚蠢的小失败,但实际上我现在已经找不到一个小时了,也许有人可以提供帮助,我会很感激。