2

私はAndroid用のEclipseを使用しています。遅延の少ない単純な繰り返しタイマーを作ろうとしています。TextViewtimerTVがクリックされた後に起動します。このコードは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 \ platform \ android-8\android.jarにはソース添付ファイル。下の[ソースの添付]をクリックすると、ソースを添付できます。[ソースの添付...]これをクリックすると、Eclipseは「android.jar」を含む場所フォルダーを選択するように要求します。とにかくそれが置かれているフォルダ。

問題は私のコードのどこかにあると思います。私は何時間も検索していて、コードを何度もコピーして貼り付けていました。

4

2 に答える 2

5

runOnUiThread() と組み合わせて実際のタイマー (java.util.Timer) を使用することは、この問題を解決する 1 つの方法であり、以下はその実装方法の例です。

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

    }
};
}

ソース: http://steve.odyfamily.com/?p=12

于 2012-06-27T14:07:18.097 に答える
0

Project -> Clean を使用してみてから、プロジェクトを右クリックして Fix Project Properties を見つけます。ビルド パスを確認します。これらのいずれかである可能性があります。Eclipse を再起動し、Android マニフェストが正しい API をターゲットにしていることを確認してください。

于 2012-06-27T00:59:57.817 に答える