Skip to content
......@@ -2,28 +2,59 @@ package fr.ldnr.bernard.zooapplication;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.Nullable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class AnimalActivity extends Activity implements View.OnClickListener {
private Handler uiHandler;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animal);
Button btnSend = findViewById(R.id.btn_validate);
btnSend.setOnClickListener(this);
// on créer un handler qui s'occupera de traîter
// les élements graphique dans le thread principal
uiHandler = new Handler(Looper.getMainLooper());
}
@Override
public void onClick(View v) {
// on va lancer la méthode search dans un thread séparé
// searchAnimal(); interdit en l'état
// ici on met la requette sur le thread 2
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.execute(new Runnable() {
@Override
public void run() {
searchAnimal();
}
});
}
public void searchAnimal() {
// sera fait dans le thread secondaire
String content_html = "????";
// TODO appel wikipedia
uiHandler.post(new Runnable() {
// ici on a le droit de faire des log, des toast, mais pas de modifications
// sera fait dans le thread principal
@Override
public void run() {
TextView tv_wiki = findViewById(R.id.tv_wiki);
tv_wiki.setText("J'ai pas fini");
}
});
}
}