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 :
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 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); } } }); } }
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.
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 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...
Partager