あなたの質問に答えるために:あなたはContext
とそれを供給しなければならないTextView
を作成します。 Activity
およびApplication
は両方ともContext
を拡張し、Context
が必要な場合に最もよく使用されます。 。
class MyActivity extends Activity {
public void someMethod() {
Thread t = new Thread() {
@override public void run() {
for(int i = 0; i < 63; i++) {
TextView tv = new TextView(MyActivity.this);
tv.setText("What to do");
}
}
};
t.start();
}
}
これは、あなたがそれについて尋ねていなかったにもかかわらず、重要です::TextView
があるあなたのケースでは、作成したTextView
があなたのコードを変更するために、そうで表示されますwhcih活動を使用する必要がありますUIコントロール。 UIスレッドでUIコントロールを作成することは、合法です。別のスレッドで作成すると、さまざまな問題が発生する可能性があります。私は上記のコードでは、いくつかのミスを修正していますが、私はそれをテストしていない:
class MyActivity extends Activity {
public void someMethod() {
Thread t = new Thread() {
@override public void run() {
for(int i = 0; i < 63; i++) {
runOnUiThread(new Runnable() {
void run() {
TextView tv = new TextView(MyActivity.this);
tv.setText("What to do");
}
});
}
}
};
t.start();
}
}
免責事項:別のスレッドからこれを行う方法の1つは、Activity.runOnUiThread()
メソッドを使用することです。それでもエラーが発生する可能性があります。
thxです。私はそれが動作するかどうかを確認するためにそれを試しに行きます – camelCaseD
この例では動作します – camelCaseD