0

私は完全な初心者です。クラスで作成したこの簡単なプログラムを Android アプリに移植しようとしています。「I love Computer Science!!」と出力するだけです。一定の量。しかし、while ループが原因で、プログラムが自動的に強制的に閉じられていると思われます。検索したところ、スレッドを作成する必要があることがわかりましたが、同様の状況が見つかりません。

これが私のonCreateメソッドです:

public void onClick(View v) 
     {
int number = 1;
int printed = 0;
int limit = 0;
int count = 0;


String countString;
second.setText("How much do you love Computer Science?");

countString = howMuchEditText.getText().toString();
count = Integer.valueOf(countString);

printed = count;

while ((count -1) >= limit)
{
   third.setText(+number + " I love Computer Science!!");
   count -= 1;
   number ++;      
}
fourth.setText("This printed " +printed + " times.");
     }
    });

}
}

誰かが私の力を閉じるのを手伝ってくれますか?

4

2 に答える 2

0

前の回答に追加すると、AsyncTask も完全な回答ではありません。これは、TextView の変更をバックグラウンド スレッドで実行できないためです。UI 呼び出しはメイン スレッドでのみ許可されます。UI スレッドで定期的なタスクをスケジュールするには、指定した間隔の後、またはできるだけ早くタスクを実行するために呼び出すことができるさまざまなメソッドを持つHandlerオブジェクトを自分で作成します。post

于 2012-05-16T00:33:18.557 に答える
0

Android では、「アプリが応答していません」というメッセージが表示されるまでに、アプリケーションのハンドラーを 5 秒間しか実行できません。ループ回数によっては、onClickメソッドがその制限を簡単に超える可能性があります。

自動更新カウンターを表示する場合は、バックグラウンドで実行される非同期タスクを起動する必要があります。

についての簡単なチュートリアルを次に示しAsyncTaskますが、理解するには、Android プラットフォームの基礎についてさらに学習する必要があります。幸運を!

于 2012-05-15T22:22:46.750 に答える