Vidéo du 20 Mars

Modérateurs : Douin, F. Lemoine, Farinone

Douin
Messages : 343
Inscription : 18 mars 2009 15:46

Vidéo du 20 Mars

Message par Douin » 22 mars 2018 9:55

Bonjour, à la suite d'un copier/coller trop rapide de ma part, le lien est absent, ce sera corrigé sur le site lundi

la vidéo du 20 mars http://cnamparis.adobeconnect.com/pd0yd03jzqfi/ mot de passe habituel

Bon tp

FlorentR
Messages : 17
Inscription : 12 nov. 2017 17:19

Re: Vidéo du 20 Mars

Message par FlorentR » 22 mars 2018 12:22

Bonjour,

Serait-il possible d'obtenir aussi le code du cours s'il vous plaît?
Tout ce qui peut nous permettre de gagner du temps est bon à prendre je pense.

Florent

Douin
Messages : 343
Inscription : 18 mars 2009 15:46

Re: Vidéo du 20 Mars

Message par Douin » 22 mars 2018 13:01

ok, successivement le .java, les .xml bonne mise en oeuvre, ps je placerai ces sources dans le répertoire ad hoc lundi


Code : Tout sélectionner

package uithread.test;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class UIThread1Activity extends Activity {
	private TextView tv;
	private Button start,stop;
	private ProgressBar progress;



	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		this.tv = (TextView) findViewById(R.id.label);
		this.progress = (ProgressBar)findViewById(R.id.progress);
		this.start = (Button) findViewById(R.id.button1);
		this.stop = (Button) findViewById(R.id.stop);
		stop.setEnabled(false);
		
		
		//this.handler = new Handler();
		//tv.setText("test sec");
		//try{
		//	Thread.sleep(30000);
		//}catch(Exception e){}
	}

	
	
	
	
	
	private Handler handler= new Handler(){
		@Override
		public void handleMessage(Message msg){
			tv.setText(msg.what + " sec");
			progress.setProgress(msg.what);
		}
	};
	
	private Affichage affichage;
	public void faireQuelqueChose_10(View v){ // android:onClick
		affichage = new Affichage();
		affichage.execute();
	}
	
	public void arreter(View v){ // android:onClick
		affichage.cancel(true);
	}
	private class Affichage extends AsyncTask<Void,Integer,String>{
		ProgressDialog mProgressDialog = null;
	    @Override
		protected void onPreExecute() {
			//mProgressDialog = ProgressDialog.show(UIThread1Activity.this, "Patience",
	        //        "de longs calculs commencent...", true);
		  start.setEnabled(false);
		  stop.setEnabled(true);
		}

		protected String doInBackground(Void... s) {
			for(int i=1;i<=5;i++){
				SystemClock.sleep(5000);
				if(isCancelled()) return "cancel";
				publishProgress(i,i*10,i*100);
				
			}
			return "ok";
		}
		
		@Override
		protected void onCancelled() {
			// TODO Auto-generated method stub
			tv.setText(" stop....."); 
			 start.setEnabled(true);
			 stop.setEnabled(false);
		}

		@Override
		protected void onProgressUpdate(Integer... values) {
			tv.setText("i=" + values[0] + " sec."); 
		}
	    @Override
		protected void onPostExecute(String result) {
			//mProgressDialog.dismiss();
	    	tv.setText("result=" +result);
			 start.setEnabled(true);
			 stop.setEnabled(false);
		}
		
	}

	public void faireQuelqueChose_0(View v){ // android:onClick
		try{
			for(int i=1;i<=5;i++){
				Log.i("faireQuelqueChose_0"," avant sleep");
				Thread.sleep(1000L);
				Log.i("faireQuelqueChose_0"," après sleep");

				tv.setText(i + " sec");
				Log.i("faireQuelqueChose_0"," après setText");
			}
		}catch(Exception e){
		}
	}

	public void faireQuelqueChose_5(View v){
		Thread t= new Thread(new Runnable(){
			public void run(){
				try{
					for(int i=1;i<=5;i++){
						Thread.sleep(5000L);
						final int value = i;
						Message msg = handler.obtainMessage(i);
						handler.sendMessage(msg);
					}
				}catch(Exception e){
				}
			}
		});
		t.start();
	}



	public void faireQuelqueChose_6(View v){
		new ProgressBarTask().execute();
	}

	private class ProgressBarTask extends AsyncTask<Void,Integer,Void>{
		@Override
		protected Void doInBackground(Void... params) {
			try{
				for(int i=1;i<=5;i++){
					Thread.sleep(1000);
					publishProgress(i);
				}
			}catch(Exception e){}
			return null;
		}

		@Override
		protected void onProgressUpdate(Integer... result) {
			tv.setText(result[0] + " sec.");
			progress.setProgress(result[0]);
		}
	}
	
	public void faireQuelqueChose_7(View v){
		for(int i= 1; i<=5;i++){
			new ProgressBarTask_7().execute(i);
		}
	}

	private class ProgressBarTask_7 extends AsyncTask<Integer,Integer,Void>{
		@Override
		protected Void doInBackground(Integer... params) {
			try{
					Thread.sleep(params[0]*1000);
					publishProgress(params[0]);
			}catch(Exception e){}
			return null;
		}

		@Override
		protected void onProgressUpdate(Integer... result) {
			tv.setText(result[0] + " sec.");
			progress.setProgress(result[0]);
		}
	}
	
	public void faireQuelqueChose_8(View v){
		for(int i= 1; i<=5;i++){
			new ProgressBarTask_8().execute(i);
		}
	}
	private class ProgressBarTask_8 extends AsyncTask<Integer,Void,Integer>{
		@Override
		protected Integer doInBackground(Integer... params) {
			try{
					Thread.sleep(params[0]*1000);
			}catch(Exception e){}
			return params[0];
		}

		@Override
		protected void onPostExecute(Integer result) {
			tv.setText(result + " sec.");
			progress.setProgress(result);
		}
	}

	public void faireQuelqueChose_4(View v){
		Thread t= new Thread(new Runnable(){
			public void run(){
				try{
					for(int i=1;i<=5;i++){
						Thread.sleep(5000L);
						final int value = i;
						handler.post(new Runnable(){
							public void run(){
								tv.setText(value + " sec.");
								progress.setProgress(value);

							}
						});
					}
				}catch(Exception e){
				}
			}
		});
		t.start();
	}






	public void faireQuelqueChose_3(View v){
		Thread t= new Thread(new Runnable(){
			public void run(){
				try{
					for(int i=1;i<=5;i++){
						Thread.sleep(1000L);// <--
						//SystemClock.sleep(1000);
						final int value = i;
						runOnUiThread(new Runnable(){
							public void run(){
								tv.setText(value + " sec");
							}
						});
					}

				}catch(Exception e){
				}
			}
		});
		t.start();
	}


	public void faireQuelqueChose_2(View v){
		Thread t= new Thread(new Runnable(){
			public void run(){
				try{
					for(int i=1;i<=5;i++){
						Thread.sleep(5000L);
						tv.setText(i + " sec");
					}

				}catch(Exception e){
				}
			}
		});
		t.start();
	}

	public void faireQuelqueChose_0_bis(View v){ // android:onClick
		try{
			for(int i=1;i<=5;i++){
				Thread.sleep(1000L);
				tv.setText(i + " sec");
			}
		}catch(Exception e){
		}
	}
	public void faireQuelqueChose_1(View v){
		Thread t= new Thread(new Runnable(){
			public void run(){
				try{
					for(int i=1;i<=5;i++){
						Thread.sleep(1000L);
						tv.setText(i + " sec");
					}

				}catch(Exception e){
				}
			}
		});
		t.start();
	}


	public void faireQuelqueChose_1_5(View v){ // android:onClick
		try{
			for(int i=1;i<=5;i++){
				Thread.sleep(5000L);
				final int value = i;
				runOnUiThread(new Runnable(){
					public void run(){
						tv.setText(value + " sec");
					}
				});
			}
		}catch(Exception e){
		}
	}



}
main.xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="faireQuelqueChose_10"
        android:text="@string/faire" >
    </Button>

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </SeekBar>

     <Button
        android:id="@+id/stop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="arreter"
        android:text="@string/arreter" >
    </Button>
    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" >
    </TextView>

    <ProgressBar
        android:id="@+id/progress"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="5" >
    </ProgressBar>

</LinearLayout>
strings.xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
    <string name="hello">Hello World, UIThread1Activity!</string>
    <string name="app_name">UIThread1</string>
    <string name="faire">faire quelque chose</string>
        <string name="arreter">stop</string>
</resources>
AndroidManifest.xml

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="uithread.test"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".UIThread1Activity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

FlorentR
Messages : 17
Inscription : 12 nov. 2017 17:19

Re: Vidéo du 20 Mars

Message par FlorentR » 22 mars 2018 14:29

Parfait.
Merci beaucoup.
Florent

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité