【问题标题】:Number Increase and Decrease Delayed数量增加和减少延迟
【发布时间】:2015-11-09 13:33:12
【问题描述】:

下面是 FieldActivity.java 代码。
我正在学习制作简单的骰子应用程序。
问题是当我将“Highorlow”EditText 设置为 100 或 0 并且
交替按高或低按钮,更新延迟。它是这样的:

High 0.1 - High - 0.2 - High 0.3 - Low 0.4 - Low 0.3 - High - 0.2 - High 0.3.

这是什么原因,我该如何解决?谢谢。

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import java.text.DecimalFormat;
import android.widget.Toast;

public class FieldActivity extends AppCompatActivity {
    SharedPreferences mySharedPreferences;
    Button Highbtn, Lowbtn;
    EditText BetAmount, Highorlow;
    TextView Balance;
    private static DecimalFormat df1 = new DecimalFormat("0.##");
    private static DecimalFormat df2 = new DecimalFormat("0.#");
    public double betamount1 = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        mySharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_field);
        Highbtn = (Button) findViewById(R.id.Highbtn);
        Lowbtn = (Button) findViewById(R.id.LowBtn);
        BetAmount = (EditText) findViewById(R.id.BetAmount);
        Highorlow = (EditText) findViewById(R.id.Highorlow);
        Balance = (TextView) findViewById(R.id.Balance);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Highbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                double multiplier = Double.valueOf(Highorlow.getText().toString());
                try {
                    multiplier = Double.valueOf(Highorlow.getText().toString());
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                }
                String userData = Balance.getText().toString();
                float balance1 = mySharedPreferences.getFloat("FLOAT_KEY1", Float.parseFloat(userData));
                if (balance1 >= betamount1) {
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    double number = Math.random() * 100;
                    TextView Number = (TextView) findViewById(R.id.Number);
                    String Number1 = df1.format(number);
                    String Balance1 = df2.format(balance1);
                    if (multiplier < number) {
                        balance1 += 0.1;
                        editor.putFloat("FLOAT_KEY1", balance1);
                        editor.apply();
                        Balance.setText(Balance1);
                        Balance.setText(String.format("%f", balance1));
                        Number.setText(Number1);
                    } if(multiplier > number) {
                        balance1 -= 0.1;
                        editor.putFloat("FLOAT_KEY1", balance1);
                        editor.apply();
                        Balance.setText(String.format("%f", balance1));
                        Balance.setText(Balance1);
                        Number.setText(Number1);
                    }
                }
                if (balance1 <= 0.00000000) {
                    balance1 += 1;
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    editor.putFloat("FLOAT_KEY1", balance1);
                    editor.apply();
                    Balance.setText(String.format("%f", balance1));
                    String Balance1 = df2.format(balance1);
                    Balance.setText(Balance1);
                }
                if (balance1 < betamount1) {
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    editor.putFloat("FLOAT_KEY1", balance1);
                    editor.apply();
                    Toast.makeText(getApplicationContext(), "Insufficient Funds", Toast.LENGTH_LONG).show();
                }
            }
        });

        Lowbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float betamount1 = 0;
                float multiplier = Float.valueOf(Highorlow.getText().toString());;
                try{
                    multiplier = Float.valueOf(Highorlow.getText().toString());
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                }
                String userData = Balance.getText().toString();
                float balance1 = mySharedPreferences.getFloat("FLOAT_KEY1", Float.parseFloat(userData));
                if (balance1 >= betamount1) {
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    double number = Math.random() * 100;
                    TextView Number = (TextView) findViewById(R.id.Number);
                    String Number1 = df1.format(number);
                    String Balance1  = df2.format(balance1);
                    if(multiplier > number){
                        balance1 += 0.1;
                        editor.putFloat("FLOAT_KEY1", balance1);
                        editor.apply();
                        Balance.setText(String.format("%f", balance1));
                        Balance.setText(Balance1);
                        Number.setText(Number1);
                    }
                    if(multiplier < number){
                        balance1 -= 0.1;
                        editor.putFloat("FLOAT_KEY1", balance1);
                        editor.apply();
                        Balance.setText(String.format("%f", balance1));
                        Balance.setText(Balance1);
                        Number.setText(Number1);
                    }
                }
                if (balance1 <= 0.00000000) {
                    balance1 += 1.00000000;
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    editor.putFloat("FLOAT_KEY1", balance1);
                    editor.apply();
                    Balance.setText(String.format("%f", balance1));
                    String Balance1  = df2.format(balance1);
                    Balance.setText(Balance1);
                }
                if (balance1 < betamount1) {
                    SharedPreferences.Editor editor = mySharedPreferences.edit();
                    editor.putFloat("FLOAT_KEY1", balance1);
                    editor.apply();
                    Toast.makeText(getApplicationContext(), "Insufficient Fund", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

【问题讨论】:

    标签: java android


    【解决方案1】:

    而不是使用:

    if (balance1 >= betamount1) {
        ....
    }
    if (balance1 <= 0.00000000) {
        ....
    }
    if (balance1 < betamount1) {
        ....
    }
    

    试试

    if (balance1 >= betamount1) {
        ....
    } else if (balance1 <= 0.00000000) {
        ....
    } else {
        ....
    }
    

    【讨论】:

    • 我刚起床,我现在就试试这个。谢谢!
    • 删除Balance.setText(Balance1);这一行,你的方法确实有效!太感谢了。我认为覆盖 TextView 是个问题。
    • 因为它可以同时适应服务条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多