我正在使用Eclipse for Android。我试图做一个简短的重复计时器,有一个短暂的延迟。 它将在单击TextView timerTV后启动。此代码位于onCreate方法中:
timerTV = (TextView) findViewById(R.id.timerTV);
timerTV.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Timer gameTimer = new Timer();
TimerTask doThis;
int delay = 5000; // delay for 5 sec.
int period = 1000; // repeat every sec.
doThis = new TimerTask() {
public void run() {
Toast.makeText(getApplicationContext(), "timer is running", Toast.LENGTH_SHORT).show();
}
};
gameTimer.scheduleAtFixedRate(doThis, delay, period);
每当我尝试运行它时,会弹出一个“类文件编辑器”,并显示错误: “未找到来源” JAR文件C:\ Program Files \ Android \ android-sdk \ platforms \ android-8 \ android.jar没有源附件。 您可以通过单击下面的附加源来附加源: [附加来源......] 单击此按钮时,Eclipse会要求我选择包含“android.jar”的位置文件夹 我试图这样做,但无论如何都无法导航到它所在的文件夹。
我认为问题出在我的代码中。 我一直在搜索几个小时,甚至多次复制和粘贴代码。
答案 0 :(得分:5)
将实际的Timer(java.util.Timer)与runOnUiThread()结合使用是解决此问题的一种方法,下面是如何实现它的一个示例。
public class myActivity extends Activity {
private Timer myTimer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, 1000);
}
private void TimerMethod()
{
//This method is called directly by the timer
//and runs in the same thread as the timer.
//We call the method that will work with the UI
//through the runOnUiThread method.
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
//This method runs in the same thread as the UI.
//Do something to the UI thread here
}
};
}
答案 1 :(得分:0)
尝试使用Project - >清理然后右键单击您的项目并找到修复项目属性。检查您的构建路径。它可以是这些东西中的任何一个。重新启动eclipse,确保你的Android Manifest定位到正确的API,8我假设?