أشكال متعددة على الروبوت
سؤال
ومرحبا أحاول بناء تخطيط فيها بعض الأشكال سوف منبثقة كل 2 ثواني. إذا كان المستخدم سوف انقر فوق أحد هذه الأشكال، لديهم ل تختفي.
ما هي الطريقة الصحيحة للقيام بذلك؟ فكرت في الموضوع، ولكنني غاب. وهنا قانون بلدي في هذه اللحظة (لا يعمل):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
l = new LinearLayout(this);
setContentView(l);
int counter = 1;
View v = new CustomDrawableView(this,20,50);
l.addView(v);
Thread t = new Thread() {
public void run() {
while (true) {
Log.i("THREAD","INSIDE");
View h = new CustomDrawableView(c,
(int)Math.round(Math.random()*100),
(int)Math.round(Math.random()*100));
SystemClock.sleep(2000);
l.addView(h);
}
}
};
t.start();
}
المحلول
وأنت لا يمكن التلاعب الشاشة في موضوع مستقل. يجب عليك استخدام معالج منذ أن يحصل دعا موضوع UI.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
l = new LinearLayout(this);
setContentView(l);
int counter = 1;
View v = new CustomDrawableView(this,20,50);
l.addView(v);
ShapeHandler handler = new ShapeHandler();
handler.sendEmptyMessage(0);
}
private class ShapeHandler extends Handler
{
@Override
public void handleMessage(Message msg)
{
View h = new CustomDrawableView(c,
(int)Math.round(Math.random()*100),
(int)Math.round(Math.random()*100));
l.addView(h);
this.sendEmptyMessageDelayed(0, 2000);
}
}
لا تنتمي إلى StackOverflow