我想在地图数据视图中显示自活动开始以来的时间。
这是我正在使用的计时器代码。我希望计时器在5分钟后停止。我需要为此代码添加什么才能使其正常工作?
package timer.tr;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handle;
import android.os.Handler;
import android.widget.TextView;
public class timer extends Activity {
private TextView timeView;
private int hour = 0;
private int min = 0;
private int sec = 0;
String mTimeFormat = "%02d:%02d:%02d";
final private Handler mHandler = new Handler();
Runnable mUpdateTime = new Runnable() {
public void run() { updateTimeView(); }
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
timeView = new TextView(this);
timeView.setText(String.format(mTimeFormat, hour, min, sec));
setContentView(timeView);
mHandler.postDelayed(mUpdateTime, 1000);
}
public void updateTimeView() {
sec += 1;
if(sec >= 60) {
sec = 0;
min += 1;
if (min >= 60) {
min = 0;
hour += 1;
}
}
timeView.setText(String.format(mTimeFormat, hour, min, sec));
mHandler.postDelayed(mUpdateTime, 1000);
}
}
这是我的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="true"
android:clickable="true"
android:apiKey="0cWhB29uXURimKWeF3lASx-MHSdekdEUZ1oZ-MQ"
/>
<RelativeLayout android:layout_height="wrap_content" android:id="@+id/relativeLayout1" android:layout_width="fill_parent"></RelativeLayout>
</LinearLayout>
目前我不再看到我的地图视图,我只看到我的TextView显示时间。
答案 0 :(得分:0)
...
timeView.setText(String.format(mTimeFormat, hour, min, sec));
if( min < 5 )
mHandler.postDelayed(mUpdateTime, 1000);
答案 1 :(得分:0)
此代码看起来像是计算您的活动运行的时间并显示此数量。
如果您希望活动停止,则应在满足所需条件时停止在updateTimeView方法中调用mHandler.postDelayed(mUpdateTime, 1000);
。 ColdForged建议符合您的标准
if( min < 5 )
mHandler.postDelayed(mUpdateTime, 1000);
要同时显示TextView和MapView,您应该使用以下XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="true"
android:clickable="true"
android:apiKey="0cWhB29uXURimKWeF3lASx-MHSdekdEUZ1oZ-MQ"
/>
<TextView android:id="@+id/timeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</RelativeLayout>
您应该将onCreate方法修改为以下内容:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
timeView = findViewById(R.id.timeText);
timeView.setText(String.format(mTimeFormat, hour, min, sec));
setContentView(R.layout.your_xml_filename_here);
mHandler.postDelayed(mUpdateTime, 1000);
}