我試圖更新TextView
中的時間,Runnable
應該是每秒運行一次。 Runnable
從Fragment
的onCreateView()
開始,但它只執行一次。運行每秒運行一次只在碎片運行一次onCreateView()
有人可以幫忙嗎?
感謝
public class MyFragment extends Fragment {
Calendar mCalendar;
private Runnable mTicker;
private Handler mHandler;
TextView mClock;
String mFormat;
private boolean mClockStopped = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RelativeLayout view = (RelativeLayout) inflater.inflate(R.layout.meteo_widget, container, false);
/*
* Clock (from DigitalClock widget source)
*/
mClock = (TextView) view.findViewById(R.id.clock);
mCalendar = Calendar.getInstance();
mHandler = new Handler();
mTicker = new Runnable() {
public void run() {
if(mClockStopped) return;
mCalendar.setTimeInMillis(System.currentTimeMillis());
mClock.setText(DateFormat.format("hh:mm:ss", mCalendar));
mClock.invalidate();
long now = SystemClock.uptimeMillis();
long next = now + (1000 - now % 1000);
mHandler.postAtTime(mTicker, next);
}
};
mTicker.run();
return view;
}
@Override
public void onResume()
{
super.onResume();
mClockStopped = true;
}
@Override
public void onPause()
{
mClockStopped = false;
super.onPause();
}
}
我需要休息。謝謝。 – jul 2012-03-26 19:10:48