gpt4 book ai didi

java - 是否已经有一个适用于 android 的 StopWatch 类,为什么我的实现不起作用?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:11 24 4
gpt4 key购买 nike

最近我看到http://developer.android.com/reference/android/os/CountDownTimer.html并且想知道秒表是否有相应的类,因为我想告诉我的应用程序的用户他已经尝试解决这个难题多长时间了。我的意思是自己编写这样的秒表并没有那么复杂。我试过类似的东西

    Runnable runnable = new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
long seconds = (System.currentTimeMillis() - t) / 1000;
statusBar.setText(String.format("%02d:%02d", seconds / 60, seconds % 60));
}
}

};
statusBar.post(runnable);

但奇怪的是,我的 Activity 布局不再膨胀,因为我在 Activity 的 onCreate 方法末尾有这个 statusBar.post(runnable); 意味着启动应用程序后,我只看到一个白色屏幕,而不是正常的图形用户界面。

最佳答案

看看 Chronometer类。

来自 APIDemo 的示例代码:

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class ChronometerDemo extends Activity {
Chronometer mChronometer;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.chronometer);

Button button;

mChronometer = (Chronometer) findViewById(R.id.chronometer);

// Watch for button clicks.
button = (Button) findViewById(R.id.start);
button.setOnClickListener(mStartListener);

button = (Button) findViewById(R.id.stop);
button.setOnClickListener(mStopListener);

button = (Button) findViewById(R.id.reset);
button.setOnClickListener(mResetListener);

button = (Button) findViewById(R.id.set_format);
button.setOnClickListener(mSetFormatListener);

button = (Button) findViewById(R.id.clear_format);
button.setOnClickListener(mClearFormatListener);
}

View.OnClickListener mStartListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.start();
}
};

View.OnClickListener mStopListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.stop();
}
};

View.OnClickListener mResetListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setBase(SystemClock.elapsedRealtime());
}
};

View.OnClickListener mSetFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat("Formatted time (%s)");
}
};

View.OnClickListener mClearFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat(null);
}
};
}

R.layout.chronometer:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Chronometer android:id="@+id/chronometer"
android:format="@string/chronometer_initial_format"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingBottom="30dip"
android:paddingTop="30dip"
/>

<Button android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chronometer_start">
<requestFocus />
</Button>

<Button android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chronometer_stop">
</Button>

<Button android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chronometer_reset">
</Button>

<Button android:id="@+id/set_format"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chronometer_set_format">
</Button>

<Button android:id="@+id/clear_format"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chronometer_clear_format">
</Button>

</LinearLayout>

将此添加到 Strings.xml

<string name="chronometer_start">Start</string>
<string name="chronometer_stop">Stop</string>
<string name="chronometer_reset">Reset</string>
<string name="chronometer_set_format">Set format string</string>
<string name="chronometer_clear_format">Clear format string</string>
<string name="chronometer_initial_format">Initial format: <xliff:g id="initial-format">%s</xliff:g></string>

关于java - 是否已经有一个适用于 android 的 StopWatch 类,为什么我的实现不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21981817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com