0

我正在尝试制作一个简单的屏幕,向您显示您每秒赚取的金额,因此我尝试创建一个实时提要类型 textveiw,该页面每秒更新您所赚取的金额,以及我的代码在我的手机上运行它只显示“无穷大”,当我尝试添加 1 秒延迟时,它全部冻结,这是我编写的代码,我正在使用 for 循环,因为如果有人我不知道更好的方法有更好的方法来实现我想做的事情,请告诉我..

    // Calculate pay per second
    double PPS = (HW/3600);
    double OTPPS = (OTW/3600);
    double HPDPS = (HPD*3600);
    double money = 0;
    double Reserve = 0;
    loc = 0;
    // Display
    for(int i=0; i<HPDPS & loc!=7; i++)
    {
        money = (PPS+Reserve);
        Reserve = (Reserve+money);
        TextView textView = (TextView) this.findViewById(R.id.yourpay);
        textView.setText(String.valueOf(money));
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

提前感谢您的帮助!

==================================================== =====================================

这是一个经过编辑的版本,但我仍然遇到一个问题,它只是在屏幕上显示无穷大,我该如何解决这个问题?或者我如何使用计时器方法?

    public void sendMessage(View view) {
    // Receive messages from options page
    Intent intent = getIntent();
    double HW = intent.getDoubleExtra(Options.MESSAGE_HW, 0);
    double OTW = intent.getDoubleExtra(Options.MESSAGE_OTW, 0);
    double HPD = intent.getDoubleExtra(Options.MESSAGE_HPD, 0);
    // Calculate pay per second
    double PPS = (HW/3600);
    double OTPPS = (OTW/3600);
    double HPDPS = (HPD*3600);
    double money = 0;
    double Reserve = 0;
    // Display
    for(int i=0; i<HPDPS; i++)
    {
        money = (PPS+Reserve);
        Reserve = (Reserve+money);
        TextView textView = (TextView) this.findViewById(R.id.yourpay);
        textView.setText(String.valueOf(money));
    }


    // set textView

}
4

2 回答 2

2

更好的方法是用户 aTimerTimerTask.

编辑:这是用户 Timer 和 TimerTask 的示例应用程序代码:

final TextView t1 = (TextView) findViewById(R.id.textView1);

    final Timer t =new Timer();
    t.schedule(new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    t1.setText("Hello" + counter++); //Place your text data here

                    //Place your stopping condition over here. Its important to have a stopping condition or it will go in an infinite loop. 
                    if(counter == 10)
                        t.cancel(); 
                }
            }); 
        }
    }, 1000, 1000);

希望这可以帮助。

于 2012-07-27T15:23:51.663 回答
-1

[1] 你在这里做按位与运算(按位与运算 -> &)

for(int i=0; i<HPDPS & loc!=7; i++)
                     ^

[2] 你的 loc 总是 0,因为你做了loc=0并且在 for 循环中 loc 永远不会更新

所以 loc!=7总是正确的

于 2012-07-27T15:28:58.223 回答