Aller au contenu

Recommended Posts

Posté(e)

Bonjour à tous,

Je vais chercher sur un serveur du contenu HTML qui se présente sous une webview, comment faire pour l'avoir dans une textview (puisque j'ai déjà fait le squelette de mon API avec mes animations et tout :P)

Hors de question de changer mon squelette !

Merci d'avance ^^

Posté(e) (modifié)

Et bien je pense que tu vas devoir gérer toi-même la connexion Http vers ton serveur, récupérer le HTML, le convertir en CharSequence et le mettre dans ta TextView.

Les pistes à suivre :

http://developer.android.com/intl/fr/reference/java/net/URLConnection.html (attention à la différence entre Uri, URI et URL)

http://developer.android.com/reference/java/net/URLConnection.html#getInputStream()

http://developer.android.com/reference/android/text/Html.html#fromHtml(java.lang.String)

Modifié par Nivek
Posté(e) (modifié)

ok merci bien, je vais voir ca lundi ^^

;)

edit : Pour ma requête je peux faire ça, non

          final String requete = SERVER_NAME + textView.getText();
                   Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(requete));
                   startActivity(intent);

Lorsque je fais ça, ca m'ouvre le browser avec ma page HTML, mais je ne veux pas de webview, donc pas de browser..

Modifié par vince123
Posté(e) (modifié)

Pour faire simple, mon activity contient un textview (titre) et un textview (contenu) :)

je peux changer le textview (contenu) en webview et ainsi y mettre du HTML, seulement, je n'arrive pas à récupérer mon HTML du serveur !

J'arrive à lancer une requête puis lancer un intent (qui ouvre le browser + affiche le HTML) mais comment juste "choper" le HTML et le "placer" dans mon webview.

Pour récupérer html.fromhtml ?? :mad: :(

Pour charger mon webview, ca me parait pas mal, non ? :

void loadData(String data, String mimeType, String encoding)

Load the given data into the WebView.

void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)

Load the given data into the WebView, use the provided URL as the base URL for the content.

Merci

Modifié par vince123
Posté(e)

Je pourrais recoller tel quel mon post précédent vu que visiblement tu n'as pas suivi les pistes que j'ai données...

Donc, pour être plus précis :

Tu vas devoir gérer dans ton code la connexion vers le serveur HTTP. Pour cela, tu as besoin d'ouvrir une URLConnection :

http://developer.android.com/intl/fr/reference/java/net/URLConnection.html

Avec cette connexion ouverte vers ton serveur, tu récupères un InputStream que tu vas devoir lire pour récupérer le contenu de ta page HTML :

http://developer.android.com/reference/java/net/URLConnection.html#getInputStream()

Une fois ceci fait, tu peux convertir le HTML en CharSequence intégrable dans une TextView via cette méthode :

http://developer.android.com/reference/android/text/Html.html#fromHtml(java.lang.String)

Posté(e)

Au final tu peux te contenter d'une WebView ou pas ??? j'ai un peu de mal à comprendre.

Est-ce que c'est simplement que tu n'as pas vu dans la doc de la WebView qu'il fallait lui fournir l'URL comme ça :

webview.loadUrl("http://slashdot.org/");

?

Posté(e) (modifié)

Bonjour Nivek,

Tu te trompes, ce n'est pas que je ne te suis pas..... mais j'ai un autre problème qui est survenu :mad: :

60640677.jpg

ET maintenant, je suis obligé de changer mon textView en webView, et la un problème survient, impossible à récupérer des évènement de click sur la webView, seulement sur ma TextView :

89883167.jpg

Ma Webview contient de l'HTML en local, j'ai essayé plein de chose pendant 2 jours, changer de layout, mettre mon listener sur un autre objet, incorporer ma scrollView dans une View, dans une autre ScrollView...etc :(

Je ne récupère plus mes clicks, je trouve rien sur la doc de la webView, c'est comme si, la webview était trop opaque pour laisser passer un évènement de click. :o :o

D'où l'importance de régler cela, avant de m'occuper à récupérer du HTML sur un serveur

Modifié par vince123
Posté(e) (modifié)

Meme si j'ai une scrollview en parent du webview .... euh .....

en fait j'ai une FrameLayout (grand père ;) ) => scrollview => RelativeLayout => Textview et Webview (même niveau) décrit précédemment

Bref, je vais tester ca, à voir

merci Pierre

--------------------------------------------------------------------------------------------------------------------

edit : Eh non, ca ne marche pas et ca m'énerve la (3 jours dessus) à essayer de mettre des layout, des listeners un peu partout, voir ce que je récupère comme click, voir ce qui est zappé :o :o :o

Comment vas-je récupérer un click sur cette p.....ain de WebView !? si des personnes ont des idées, je suis preneur

Modifié par vince123
Posté(e) (modifié)

Bon, je vous tiens au courant,

J'ai réussi à récupérer mes clicks sur le webview, mais ne me demander pas pourquoi !

Maintenant let's go, récupération HTML pour le webview et mise en place parser + json pour récupérer un champ et le mettre dans un fils de mon ExpandableListView ! :) :)

Si vous avez des idées ou des exemples sur les parser, pensez à moi :P

go :rolleyes:

ps : merci de m'avoir bien guidé :| :|

Modifié par vince123
Posté(e)

très simple à utiliser, il y a 2 type de méthodes :

- getXXX si tu veux récupérer un élément obligatoire (lève une exception si l'élément est introuvable)

- optXXX si l'élément est optionnel (une valeur par défaut doit être fournie)

Posté(e)

html est basé sur xml (plus ou moins)

xml et json sont des formats d'échange de données, dont les syntaxes sont très différentes !

je vois donc mal ce que tu veux faire avec un parser json, et des données en html...

Posté(e)

j'ai du contenu HTML

j'ai une expandablelistview

Je dois mettre un certain champs dans un enfant de mon expandablelistview

Par conséquent, on m'a dit de scanné mon HTML avec un parser et d'utiliser json après (sans trop savoir pourquoi, mais je dois faire comme ca)

Posté(e)

ha ok !

donc tu ne va pas utiliser le mode "parser" de JSONObject !

c'est pour ça que je ne comprenait pas :P

donc en fait, tu vas créer un JSONObject vide, et le remplir avec des données "à la main", pour l'utiliser comme un stockage temporaire....

je ne vois pas trop l'interet, puisqu'une ArrayList/HashMap permet de faire la meme chose

sauf si t'as une structure en arbre...

à noter que tu peux aussi faire un toString sur JSONObject pour l'exporter !

Posté(e)

Rectification : je dois utiliser le parser de JSON !

Apparemment, je lui donne un string, me scanne mon flux et il me retourne ce que j'ai demandé !

pouah, j'ai jamais fait ca moi !

Posté(e) (modifié)

je vais voir ce que j'ai dans mon HTML...et je reviens ^^

-----------------------------------------------------------------------------------------------------------------------

edit :

voila le genre de chose que j'ai :

{
"blok": false,
"msg_err": "",
"yyyyyyyy": [{"results": [
 {
  "ambiguite": false,
  "id_page": 0,
  "nb_pages": 0,
  "paragraph": [{
   "format": 4,
   "image": [],
   "text": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }],

je dois récupérer mon "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (qui est l'enfant dans mon expandablelistview) et le mettre dans "yyyyyyyy" (qui est un parent dans mon expandablelistview)

Modifié par vince123
Posté(e)

ok, c'est bien du JSON \o/

il te suffit de créer un JSONObject, en passant en paramètre une chaine de caractère contenant ton JSON

l'objet JSONObjet est accessible en :

- lecture avec getXXX et optXXX

- en écriture avec putXXX et remove

donc tu peux facilement faire ce que tu viens de me décrire

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...