Bonjour,

J'espere être a la bonne place et j'espere trouver un géni qui saura m'expliquer pourquoi cela ne fonctionne pas et quoi faire pour que ca marche.

J'essaye de faire des pauses Thread.sleep()dans une boucle (for) pour que mon ScrollView scroll tout seul... donc faire un AutoScroll ou texte auto-défilant.

Cela fait maintenant 2 jours que je suis bloqué, j'ai googlé presque tout ce qui est possible a ce sujet... J'ai beaucoup lu sur les Threads.sleep() mais rien n'aboutit.

Voici mon code, je l'ai réduit au plus simple. J'utilise API 7 comme minimum SDK.

Mon MainActivity en java, crée avec Eclipse, que j'ai nommé testsleep :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.example.testsleep;
 
import com.example.testsleep.R.id;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
import android.app.Activity;
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
 
	Button Button_AutoScroll = (Button)findViewById(id.Button_AutoScroll);
	Button_AutoScroll.setOnClickListener(new OnClickListener() {
	    @Override
	    public void onClick(View v) {
 
	        TextView Text_Scrolable = (TextView) findViewById(id.Text_Scrollable);				
	        ScrollView Scroll_Window = (ScrollView)findViewById(id.Scroll_Window);
 
	       for (int ScrollPos = 0; ScrollPos < Text_Scrolable.getHeight();++ScrollPos)
                {
	            try {Thread.sleep(10000);}     ////ici ca plante 
	            catch (InterruptedException e) {return;}
 
		    Scroll_Window.smoothScrollTo(0, ScrollPos);										
	        }
            }
        });
    }
}
Et mon fichier XML activity_main

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Layout_MainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <ScrollView 
        android:id="@+id/Scroll_Window"
        android:layout_width="300dp"
        android:layout_height="175dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >
 
                <TextView
                android:id="@+id/Text_Scrollable"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="blablablblablalblablalblabllablalblablalbla
                lbalbalblbllablalblablalblablablablalblablalbalblablalbla
                blablablalbalblablablalbalblablablalblablalblabllbalalbal
                lblablalbbalblablablblblablablablalbbalblablbalblblalbbla
                blablablblbalbablbalalbalbblablbalbblalblablalblalalbblbl
                lblbalblablalblablablalblablablalbalblablablalblablablblb
                lblablalbalblablablablablblablablalablalblablablalblablba
                lblabllablalblablalblablalblalblablalblalblblablalblalblb
                lbalbalblbllablalblablalblablablablalblablalbalblablalbla
                blablablalbalblablablalbalblablablalblablalblabllbalalbal
                lblablalbbalblablablblblablablablalbbalblablbalblblalbbla
                blablablblbalbablbalalbalbblablbalbblalblablalblalalbblbl
                lblbalblablalblablablalblablablalbalblablablalblablablblb
                lblablalbalblablablablablblablablalablalblablablalblablba
                lblabllablalblablalblablalblalblablalblalblblablalblalblb
                lbalbalblbllablalblablalblablablablalblablalbalblablalbla
                blablablalbalblablablalbalblablablalblablalblabllbalalbal
                lblablalbbalblablablblblablablablalbbalblablbalblblalbbla
                blablablblbalbablbalalbalbblablbalbblalblablalblalalbblbl
                lblbalblablalblablablalblablablalbalblablablalblablablblb
                lblablalbalblablablablablblablablalablalblablablalblablba
                lblabllablalblablalblablalblalblablalblalblblablalblalbl"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="#673F18" />
 
    </ScrollView>
 
    <Button
        android:id="@+id/Button_AutoScroll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="AutoScroll" />
 
</RelativeLayout>
Quand je met la portion[try {Thread.sleep(10000);} catch (InterruptedException e {return;}] dans la boucle for ca plante. Comme si il compilait le Thread.sleep() un par dessus l'autre sans l'executer et faire une pause comme prévu et sature la mémoire. Pourtant c'est ce que je vois partout sur le net pour faire une pause dans un for.

Quand je mets ces 2 lignes en dehors de la boucle for... avant ou apres... il fait une pause de 10 sec avant d'effectuer la boucle for d'un coup. Mais rien a faire dans la boucle.

Est-ce qu'il y a de quoi que j'ai mal compris a propos des Threads...

merci a'avance pour votre aide...