Aller au contenu

Mettre dans un textview un contenu webview (HTML)


vince123

Recommended Posts

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 ^^

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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/");

?

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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...