2017-06-06 71 views
-2

为什么我的imageView在checkingBalance = $ 1200或更多时不可见?设置可见性无法在图像视图上工作

我已将它设置为在XML文件中不可见。我基本上希望ivArrow ImageView只显示可见,如果我的checkingBalance超过$ 1199.99。

public class MainActivity extends AppCompatActivity { 

    ImageView ivArrow; 
    TextView tvCheckingBalance; 
    TextView tvInvestmentsBalance; 
    TextView tvPayRate; 
    TextView tvToday; 
    TextView tvWorkBalance; 
    Button btnWork; 

    boolean runInitialize = true; 
    float checkingBalance; 
    float investmentsBalance; 
    float payRate; 
    float workBalance; 
    int today; 
    int weekDay; 
    int workPercent; 

    DecimalFormat dollarFormat = new DecimalFormat("#,###.00"); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     SharedPreferences settings = getSharedPreferences("com.vuvaia.lifeofme", MODE_PRIVATE); 
     runInitialize = settings.getBoolean("runInitialize", runInitialize); 

     if (runInitialize) { 
      initialize(); 
      loadSettings(); 
     } else { 
      loadSettings(); 
     } 

     // INITIALIZING VIEW SETUP 
     ivArrow = (ImageView) findViewById(R.id.ivArrow); 
     tvCheckingBalance = (TextView) findViewById(R.id.tvCheckingBalance); 
     tvCheckingBalance.setText("$" + dollarFormat.format(checkingBalance)); 
     tvInvestmentsBalance = (TextView) findViewById(R.id.tvInvestmentBalance); 
     tvInvestmentsBalance.setText("$" + dollarFormat.format(investmentsBalance)); 
     tvPayRate = (TextView) findViewById(R.id.tvPayRate); 
     tvPayRate.setText("$" + dollarFormat.format(payRate) + "/hr"); 
     tvToday = (TextView) findViewById(R.id.tvToday); 
     tvToday.setText(String.valueOf(today)); 
     tvWorkBalance = (TextView) findViewById(R.id.tvWorkBalance); 
     tvWorkBalance.setText("$" + dollarFormat.format(workBalance)); 

     btnWork = (Button) findViewById(R.id.btnWork); 

     btnWork.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       workButtonPressed(); 
      } 
     }); 

     // TODO SET UP THIS ARROW THAT TRANSFERS MONEY TO INVESTMENTS 
     if(checkingBalance > 1199.99f) { 
      ivArrow.setVisibility(View.VISIBLE); 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     loadSettings(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     saveSettings(); 
    } 

    // WORK BUTTON PRESSED ACTIONS ************************************************** 
    public void workButtonPressed(){ 
     if(workPercent < 100){ 
      workBalance += (payRate * .4); 
      tvWorkBalance.setText("$" + dollarFormat.format(workBalance)); 
      workPercent ++; 
      advanceDays(); 
     } else { 
      checkingBalance = checkingBalance + workBalance; 
      tvCheckingBalance.setText("$" + dollarFormat.format(checkingBalance)); 
      workPercent = 0; 
      workBalance = 0.0f; 
      tvWorkBalance.setText("$" + dollarFormat.format(workBalance)); 
      today += 2; 
      weekDay = 0; 
      tvToday.setText(String.valueOf(today)); 
     } 
    } 
    // WORK BUTTON PRESSED ACTIONS ************************************************** 

    // ADVANCING THE CALENDAR DAYS ************************************************** 
    public void advanceDays(){ 
     if(weekDay <= 17){ 
      weekDay ++; 
     } else { 
      weekDay = 0; 
      today ++; 
      tvToday.setText(String.valueOf(today)); 
     } 
    } 
    // ADVANCING THE CALENDAR DAYS ************************************************** 

    // LOADING AND SAVING ************************************************** 
    public void initialize(){ 
     checkingBalance = 0.00f; 
     investmentsBalance = 0.00f; 
     payRate = 7.57f; 
     today = 0; 
     weekDay = 0; 
     workBalance = 0.00f; 
     workPercent = 0; 

     saveSettings(); 
    } 
    public void saveSettings(){ 
     SharedPreferences settings = getSharedPreferences("com.vuvaia.lifeofme", MODE_PRIVATE); 
     settings.edit().putFloat("checkingBalance", checkingBalance).commit(); 
     settings.edit().putFloat("investmentsBalance", investmentsBalance).commit(); 
     settings.edit().putFloat("payRate", payRate).commit(); 
     settings.edit().putBoolean("runInitialize", false).commit(); 
     settings.edit().putInt("today", today).commit(); 
     settings.edit().putInt("weekDay", weekDay).commit(); 
     settings.edit().putFloat("workBalance", workBalance).commit(); 
     settings.edit().putInt("workPercent", workPercent).commit(); 
    } 
    public void loadSettings(){ 
     SharedPreferences settings = getSharedPreferences("com.vuvaia.lifeofme", MODE_PRIVATE); 
     checkingBalance = settings.getFloat("checkingBalance", checkingBalance); 
     investmentsBalance = settings.getFloat("investmentsBalance", investmentsBalance); 
     payRate = settings.getFloat("payRate", payRate); 
     runInitialize = settings.getBoolean("runInitialize", runInitialize); 
     today = settings.getInt("today", today); 
     weekDay = settings.getInt("weekDay", weekDay); 
     workBalance = settings.getFloat("workBalance", workBalance); 
     workPercent = settings.getInt("workPercent", workPercent); 
    } 
    // LOADING AND SAVING ************************************************** 
} 

XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#EEEEEE" 
    tools:context="com.vuvaia.lifeofme.MainActivity"> 

    <Button 
     android:id="@+id/btnWork" 
     android:layout_width="0dp" 
     android:layout_height="75dp" 
     android:background="#2A2A2A" 
     android:text="Work" 
     android:textColor="#EEEEEE" 
     android:textSize="30sp" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginBottom="32dp" /> 

    <TextView 
     android:id="@+id/tvWorkBalance" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:background="#2A2A2A" 
     android:textColor="#EEEEEE" 
     android:textSize="30sp" 
     android:textAlignment="center" 
     android:layout_marginBottom="8dp" 
     android:paddingBottom="15dp" 
     android:paddingTop="15dp" 
     app:layout_constraintBottom_toTopOf="@+id/btnWork" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" /> 

    <TextView 
     android:id="@+id/tvPayRate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#2A2A2A" 
     android:layout_marginTop="16dp" 
     app:layout_constraintTop_toBottomOf="@+id/tvWorkBalance" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintLeft_toLeftOf="parent" /> 

    <TextView 
     android:id="@+id/tvCheckingBalance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#2A2A2A" 
     android:textSize="15sp" 
     android:layout_marginRight="8dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginLeft="8dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginTop="32dp" /> 

    <TextView 
     android:id="@+id/tvToday" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#2A2A2A" 
     android:textSize="15sp" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginTop="32dp" 
     android:layout_marginLeft="32dp" 
     app:layout_constraintLeft_toLeftOf="parent" /> 

    <TextView 
     android:id="@+id/tvInvestmentBalance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#2A2A2A" 
     android:textSize="15sp" 
     android:layout_marginRight="32dp" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginTop="32dp" /> 

    <ImageView 
     android:id="@+id/ivArrow" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="invisible" 
     app:srcCompat="@drawable/ic_arrow" 
     android:layout_marginTop="8dp" 
     app:layout_constraintTop_toBottomOf="@+id/tvCheckingBalance" 
     app:layout_constraintLeft_toRightOf="@+id/tvCheckingBalance" 
     android:layout_marginLeft="8dp" /> 
</android.support.constraint.ConstraintLayout> 
+0

首先,您应该通过为checkingBalance提供Hard-Coded值来检查条件,如果Condition是ok,那么您已检查您正在分配的值为checkedBalance。 –

回答

2

添加能见度代码中的onClickbtnWork

btnWork.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      workButtonPressed(); 
      // TODO SET UP THIS ARROW THAT TRANSFERS MONEY TO INVESTMENTS 

      if(checkingBalance > 1199.99f) { 
       ivArrow.setVisibility(View.VISIBLE); 
      } 
     } 
    }); 
+0

这或多或少地解决了这个问题。我在workButton监听器中放置了一个If语句,它确定我是否已达到1200。 – cormeistro

0

我强烈地想你checkingBalance有问题。没有返回您的预期价值。

float f1 = 1200; 
    float f2 = 1199.99f; 
    int compare = Float.compare(f1,f2); 

    if(compare > 0){ 
     System.out.println("First is grater"); 
    }else if(compare < 0){ 
     System.out.println("Second is grater"); 
    }else{ 
     System.out.println("Both are equal"); 
    } 
相关问题