因此,我一直在整个这个项目上工作,因为我想了解timePicker并处理java和android sdk中的时间。所以现在我有以下设置:我无法让我的线程或循环运行正常
package com.dicamillo.alarm;
import java.util.Calendar;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DigitalClock;
import android.widget.TextView;
import android.widget.TimePicker;
public class AlarmlockActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
TimePicker tp;
Button set;
int hour;
int minuet;
DigitalClock dc;
Calendar calendar = Calendar.getInstance();
TextView complete;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tp = (TimePicker) findViewById(R.id.tpAlarmTime);
set = (Button) findViewById(R.id.bSet);
dc = (DigitalClock) findViewById(R.id.digitalClock1);
hour = calendar.get(Calendar.HOUR);
minuet = calendar.get(Calendar.MINUTE);
complete = (TextView) findViewById(R.id.tvTest);
set.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bSet:
Thread alarmstart = new Thread() {
public void run() {
while (tp.getCurrentHour().intValue() != hour
&& tp.getCurrentMinute().intValue() != minuet) {
tp.getCurrentHour().intValue();
tp.getCurrentMinute().intValue();
if (tp.getCurrentHour().intValue() == hour
&& tp.getCurrentMinute().intValue() == minuet) {
MediaPlayer mp = MediaPlayer.create(
AlarmlockActivity.this, R.raw.alarm);
mp.start();
complete.setText("COmpleted!");
}
}
}
};
alarmstart.start();
break;
}
}
,并在选定的时间达到当前的时间什么也没有发生像它应该应该。我在线索中遗漏了什么?或者我完全错了。任何帮助工作都很棒。我知道我今天一直在寻求很多帮助,但我只想学习。 =)
人们不想盯着50行代码。尽可能减少它。 – Bananeweizen 2012-07-15 05:09:49