Android SDK(Eclipse):如何为简单的App创建一个简单的计时器?

时间:2013-11-26 07:44:44

标签: android eclipse time sdk timer

我有一个关于编写应用程序启动时显示的句子的简单应用程序。唯一的问题是,我需要应用程序来计算用户编写句子所花费的时间...就像当你触摸“提交”时按钮,Toast消息会说“那是正确的!,你花了3.2秒”作为例子。

我听说您可以设置一个计时器,以便在特定操作发生时启动...您可以命令它停止。

所以,假设计时器将在您启动应用程序时启动,当您触摸“提交”按钮时它将停止,并提供如上所述的干杯消息,计算您在启动后写入感知的确切时间应用程序! *

以下是应用代码希望它有所帮助:*

Button w;

TextView t;

EditText e;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);



w = (Button) findViewById(R.id.Write);

t= (TextView) findViewById(R.id.FTS);

e = (EditText) findViewById(R.id.Text);


w.setOnClickListener(new View.OnClickListener() {

@Override

 public void onClick(View v) {


 String check1 = t.getText().toString();
 String check2 = e.getText().toString();

 if (check1.equals(check2))

     Toast.makeText(MainActivity.this,"You Wrote it Right !!!",Toast.LENGTH_LONG).show();

 else if (check2.equals(""))

Toast.makeText(MainActivity.this,"It's Empty",Toast.LENGTH_LONG).show();

 else 
     Toast.makeText(MainActivity.this,"You wrote it wrong,try again !",Toast.LENGTH_LONG);

我对Android很新,所以我真的不知道该怎么做,谢谢你的时间。*

2 个答案:

答案 0 :(得分:11)

您可以使用Timer类来启动计时器会话。请按照以下步骤操作:

1-定义Timer的全局变量和变量来计算时间,如:

private Timer t;
private int TimeCounter = 0;

2-然后当活动开始时,所以在onCreate中添加以下内容: P.S:我做的是我有一个textView来显示他在写句子时的时间。因此,如果您不想要,可以删除以下代码中的tvTimer部分

t = new Timer();
    t.scheduleAtFixedRate(new TimerTask() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            runOnUiThread(new Runnable() {
                public void run() {
                    tvTimer.setText(String.valueOf(TimeCounter)); // you can set it to a textView to show it to the user to see the time passing while he is writing.
                    TimeCounter++;
                }
            });

        }
    }, 1000, 1000); // 1000 means start from 1 sec, and the second 1000 is do the loop each 1 sec.

然后单击该按钮时,停止计时并在timeCounter中显示Toast变量。

t.cancel();//stopping the timer when ready to stop.
Toast.makeText(this, "The time taken is "+ String.valueOf(TimeCounter), Toast.LENGTH_LONG).show();

P.S:您必须处理将秒数转换为分钟数,因为数字可能会延长至360秒,因此您需要将其转换为6分钟。您可以在t.schedualeAtFixedRate中完成,或者在完成后可以将其转换并在吐司中显示

希望你发现这很有用。如果它适合你,请给我一个反馈。

答案 1 :(得分:6)

让我引导您注意Chronometer Widget on the Dev Page

此外,您还可以使用Chronometer Widget(跳至8:30)获得的内容

Video of Chronometer Widget

<强> XML

  <Chronometer
    android:id="@+id/chronometer1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<强>爪哇

((Chronometer) findViewById(R.id.chronometer1)).start();
((Chronometer) findViewById(R.id.chronometer1)).stop();