مشکل در Thread.sleep ( حل شد ولی یه مشکل )
سلام
یه ارایه داینامیک دارم از ImageView که 8 تا عنصر داره یه کلاس از Thread هم ساختم که با یه نمونه از اون ، وارد اون کلاس میشم ، می خوام با این کد هر یک ثانیه یکی از عناصر ارایه مخفی بشه ولی اینجوری عمل میکنه که مثلا چون 8 تا عنصر داریم 8 تا یک ثانیه صبر میکنه بعدش 8 تا عنصر با هم مخفی میشند ولی یه Log کنارش گذاشتم که داخل logcat درست ثانیه ثانیه میشمره !
@Override
public void run() {
super.run();
String result = edtIn.getText().toString();
String myWord = word;
if (result.length() > 0) {
if (result.equals(myWord)) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
for (int i=0 ; i<8 ; i++) {
images.get(i).setVisibility(View.INVISIBLE);
Log.i("LOG","Number : " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
}
}
}
مشکل از کجاست ؟ ممنون
کدتون رو اینجوری باید بنویسین.
@Override
public void run() {
super.run();
String result = edtIn.getText().toString();
String myWord = word;
if (result.length() > 0) {
if (result.equals(myWord)) {
for (int i=0 ; i<8 ; i++) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
images.get(i).setVisibility(View.INVISIBLE);
Log.i("LOG","Number : " + i);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
@Override
public void run() {
super.run();
String result = edtIn.getText().toString();
String myWord = word;
if (result.length() > 0) {
if (result.equals(myWord)) {
for (int i=0 ; i<8 ; i++) {
num=i;
G.HANDLER.post(new Runnable() {
@Override
public void run() {
images.get(num).setVisibility(View.INVISIBLE);
Log.i("LOG", "Number : " + num);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
این کد همون کد بالاست که داخل برنامه نوشتم هفتاد تا ایمیج ویو داخل یه ارایه داینامیک هست و قراره یکی یکی INVISIBLE بشه !
با for نوشتم با while نوشتم ولی یه مشکلی داره
این کد داخل جنی موشن و موبایل کار میکنه ولی داخل موبایل یه مشکلی پیش میاد بعضی مواقع به صورت تصادفی یک یا دو یا سه تا از تصاویر مخفی نمیشند !
ممکنه این مشکل به خاطر اصولی نبودن این کار من پیش بیاد ؟
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
bb = 0
while ( bb < 70 ){
G.HANDLER.post(new Runnable() {
@Override
public void run() {
images.get(bb).setVisibility(View.INVISIBLE);
}
});
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
bb++;
}
});
thread.start();
با تشکر .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .