IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Ajouter une "note" sur une webview


Sujet :

Composants graphiques Android

  1. #1
    Invité
    Invité(e)
    Par défaut Ajouter une "note" sur une webview
    Salut,

    J'ai une appli qui affiche plusieur webview (gràce à un flipper) et j'aimerais lorsque je fais un clixk long sur ma webview pouvoir créer une zone de texte et écrire ce que je veux dedans.

    Je me suis poser la question est-ce que je fais ça dans ma page html ou dans mon programme java? et je pense plus simple de le faire par mon programme... mais comment?

    Est-il possible de faire apparaître une zone de texte sur un click long et sur la webview? et comment faire pour être sur que cette zone de texte soit liée à la webview et non pas au flipper? ça serait embétant qu'en changeant de webview j'affiche mon texte sur une autre webview :s

    Je prend tout les conseils que vous pourrez me donner sur cette question tout en cherchant des possibilités de mon côté?

  2. #2
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Une solution serait qu'au lieu d'avoir un ViewFlipper composé de plusieurs WebViews, tu fasses un ViewFlipper de FrameLayout, chacun étant composé d'une WebView puis d'une TextView. Comme ça pas de problème lors du changement de page avec le flipper.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je vais essayer cela ça semble être la solution la plus simple, mais j'aurais aimé pouvoir ajouter un genre de widget "note" sur ma webview. Ou, plus simple, une zone de texte mais sur la webview, c'est possible? ou il faut forcément la mettre en dehors de la webview?
    Dernière modification par Invité ; 13/07/2011 à 09h11.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Serait plus simple d'appeler une application existant sur l'android (AkNotePad par exemple) et de créer la note?

    Mais dans ce cas si je veux afficher un widget de cette note il faut modifier le code source de Ak Notepad ce qui au final sera plus compliqué non?

  5. #5
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Je vais essayer cela ça semble être la solution la plus simple, mais j'aurais aimé pouvoir ajouter un genre de widget "note" sur ma webview. Ou, plus simple, une zone de texte mais sur la webview, c'est possible? ou il faut forcément la mettre en dehors de la webview?
    C'est bien la solution que t'as proposé Viish via les FramesLayout.

    Mais dans ce cas si je veux afficher un widget de cette note il faut modifier le code source de Ak Notepad ce qui au final sera plus compliqué non?
    la solution de Viish est facile à mettre en place .

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ah j'avais lu trop vite, je vais tester les FrameLayout alors. Est-il possible de déplacer un EditText où l'on veux sur la vue (gràce au scroll par exemple) ou faut-il forcément le placer dans le xml à un endroit précis?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Votre solution est plutot bonne =) j'affiche donc un context menu aprés un lognclick sur la webview, et je choisi entre "afficher la note" et "cacher la note"
    voici le code de mon menu :
    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
    /**---- création de la note----*/
    	public boolean onContextItemSelected(MenuItem item)
        {
    		switch(item.getItemId()){
    			case 0 :
    			Toast.makeText(this, "note ajoutée" , Toast.LENGTH_SHORT).show();
    	       	if (mWebView1.isFocused()){
    	       		et1.setVisibility(0);    	    
    	       	}else if (mWebView2.isFocused()){
    	       		et2.setVisibility(0);
    	       	}else if (mWebView3.isFocused()){
    	       		et3.setVisibility(0);
    	       	}else if (mWebView4.isFocused()){
    	       		et4.setVisibility(0);
    	       	}else if (mWebView5.isFocused()){
    	       		et5.setVisibility(0);
    	       	}else if (mWebView6.isFocused()){
    	       		et6.setVisibility(0);
    	       	}else if (mWebView7.isFocused()){
    	       		et7.setVisibility(0);
    	       	}else {
    	       		et8.setVisibility(0);
    	       	} break;
     
    			case 1 :
    		       	if (mWebView1.isFocused()){
    		       		et1.setVisibility(4);    	    
    		       	}else if (mWebView2.isFocused()){
    		       		et2.setVisibility(4);
    		       	}else if (mWebView3.isFocused()){
    		       		et3.setVisibility(4);
    		       	}else if (mWebView4.isFocused()){
    		       		et4.setVisibility(4);
    		       	}else if (mWebView5.isFocused()){
    		       		et5.setVisibility(4);
    		       	}else if (mWebView6.isFocused()){
    		       		et6.setVisibility(4);
    		       	}else if (mWebView7.isFocused()){
    		       		et7.setVisibility(4);
    		       	}else {
    		       		et8.setVisibility(4);
    		       	}break;	            
    		}
    		return true;
        }
    Mais la partie pour cacher l'édittext ne marche pas.

    De plus j'aimerais "sauvegarder" le text contenu dans l'edittext, je croyais que le Bundle savedInstanceState dans le onCreate permettait de conserver l'état de l'application si on la ferme (mais pas si on l'éteint vraiment), cependant lorsque je quitte mon appli et que je la relance le texte contenu dans l'edittext n'y est plus. Comment faire pour le conserver?

  8. #8
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Est-il possible de déplacer un EditText où l'on veux sur la vue (gràce au scroll par exemple) ou faut-il forcément le placer dans le xml à un endroit précis?
    Tu peux le placer au début de manière fixe , après dans ton code tu peux modifier ton EditText de place en modifiant ces paramètres.

    De plus j'aimerais "sauvegarder" le text contenu dans l'edittext, je croyais que le Bundle savedInstanceState dans le onCreate permettait de conserver l'état de l'application si on la ferme (mais pas si on l'éteint vraiment), cependant lorsque je quitte mon appli et que je la relance le texte contenu dans l'edittext n'y est plus. Comment faire pour le conserver?
    Nein, ca ne garde pas en mémoire lorsque l'application s'éteind , mais juste lorsque l'activity se relance.

    pour sauvegarder des donnée tu as toutes la documentation ici :
    http://developer.android.com/guide/t...a-storage.html

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Nein, ca ne garde pas en mémoire lorsque l'application s'éteind , mais juste lorsque l'activity se relance.
    Normalement que je reviens sur l'écran d'acceuil de mon android (en cliquant sur le bouton home) je n'éteint pas l'appli? du coup en la relançant je devrais réafficher mon editText non?

    Merci pour le lien, je vais me renseigner un peu plus =)


    ---EDIT---

    Pour ce que est de mon option "cacher l'edittext", il se trouve que lorsque je ne met pas de text dans la l'EditText je peux la cacher, mais dés que j'en met je ne peux plus... Le curseur est toujours présent à coté de mon text je pense que c'est en partie à cause de cela que ça ne marche pas ... quelqu'un a une idée de solution?
    Dernière modification par Invité ; 13/07/2011 à 12h12.

  10. #10
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Pour ce qui est de cacher l'EditText, mets dans ton code des setVisibility(View.VISIBLE) et setVisibility(View.GONE), c'est plus parlant que 0 ou 4. Par contre c'est surprenant que ça ne marche pas.

    Pour la sauvegarde, je te propose d'utiliser un PreferenceManager si tu veux garder le texte en mémoire, même après la fermeture complète de ton application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SharedPreferences prefs = getSharedPreferences("MonApplication", Activity.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("WebNote", note);
    editor.commit();

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Viish Voir le message
    Pour ce qui est de cacher l'EditText, mets dans ton code des setVisibility(View.VISIBLE) et setVisibility(View.GONE), c'est plus parlant que 0 ou 4. Par contre c'est surprenant que ça ne marche pas.
    J'ai fais les changements mais l'EditText reste Visible ...

    Citation Envoyé par Viish Voir le message
    Pour la sauvegarde, je te propose d'utiliser un PreferenceManager si tu veux garder le texte en mémoire, même après la fermeture complète de ton application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SharedPreferences prefs = getSharedPreferences("MonApplication", Activity.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("WebNote", note);
    editor.commit();
    Il faut que je crée un "editor" par EditText c'est cela?

  12. #12
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    En fait le SharedPreferences permet le stockage d'information en "dur", et le SharedPreferences.Editor permet la modification de ces informations. Tu n'as rien a crée, juste à appeler ce code dès que tu veux stocker/charger ta valeur.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Pour le fait de cacher l'EditText, je confirme que le problème vient du fait que le focus soit sur l'EditText, en effet si je change de webview grace au flipper et que je reviens sur la WV contenant l'EditText là ça marche, je peux la cacher ... Bizarre non? ^^

  14. #14
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Bizarre en effet. Mais du coup en "bricolant", c'est simple à régler. Lorsque tu veux cacher ton EditText, tu n'as qu'à mettre "a la main" le focus sur la WebView. ;-)

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Viish Voir le message
    Bizarre en effet. Mais du coup en "bricolant", c'est simple à régler. Lorsque tu veux cacher ton EditText, tu n'as qu'à mettre "a la main" le focus sur la WebView. ;-)
    Oui c'est ce que je vais tenter de faire =)

    ---EDIT---
    En faisant comme ceci ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	if (et1.isFocused()){
    		       		mWebView1.setFocusableInTouchMode(true);
    		       		et1.setVisibility(View.GONE);
    lors du click sur "cacher la note" =)

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Citation Envoyé par fowlie Voir le message
    Pour le fait de cacher l'EditText, je confirme que le problème vient du fait que le focus soit sur l'EditText, en effet si je change de webview grace au flipper et que je reviens sur la WV contenant l'EditText là ça marche, je peux la cacher ... Bizarre non? ^^
    Bonjour,
    Non c'est pas vraiment bizarre vu ton code :
    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
    case 1 :
    		       	if (mWebView1.isFocused()){
    		       		et1.setVisibility(4);    	    
    		       	}else if (mWebView2.isFocused()){
    		       		et2.setVisibility(4);
    		       	}else if (mWebView3.isFocused()){
    		       		et3.setVisibility(4);
    		       	}else if (mWebView4.isFocused()){
    		       		et4.setVisibility(4);
    		       	}else if (mWebView5.isFocused()){
    		       		et5.setVisibility(4);
    		       	}else if (mWebView6.isFocused()){
    		       		et6.setVisibility(4);
    		       	}else if (mWebView7.isFocused()){
    		       		et7.setVisibility(4);
    		       	}else {
    		       		et8.setVisibility(4);
    		       	}break;
    Tu as le focus sur ton editText et tu fais un test pour voir si le focus est sur la webView. Donc ca ne peut pas marcher

  17. #17
    Invité
    Invité(e)
    Par défaut
    Effectivement tu as raison, mais j'ai remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (et1.isFocused()){
    		       		mWebView1.setFocusableInTouchMode(true);
    		       		et1.setVisibility(View.GONE);
    et ça marche =)

  18. #18
    Invité
    Invité(e)
    Par défaut
    Est-il possible d'ajouter des widget dans une applications comme on le fait sur l'écran d'acceuil d'android?

    Comment crée-t-on des widgets? Auriez-vous des tutos et conseils à me donner?

    Ou alors est-il possible d'afficher les widget d'une autre application ( de prise de note par exemple) dans mon application? si oui, vous avez une idée de comment faire?

  19. #19
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Comment crée-t-on des widgets? Auriez-vous des tutos et conseils à me donner?
    Un bon tutoriel sur les Widgets, fait par notre célèbre Viish .

    http://sberfini.developpez.com/tutor...oid/appwidget/

    Est-il possible d'ajouter des widget dans une applications comme on le fait sur l'écran d'acceuil d'android?
    Comme cela , je ne pense pas , par contre , je pense que tu peux créer quelque chose qui s'en rapproche via une view avec un FrameLayout.

    Ou alors est-il possible d'afficher les widget d'une autre application ( de prise de note par exemple) dans mon application? si oui, vous avez une idée de comment faire?
    Aucune idée, par défaut je dirais que ce n'est pas possible .

  20. #20
    Invité
    Invité(e)
    Par défaut
    Ok merci pour le tuto.

    Citation Envoyé par Feanorin Voir le message
    je pense que tu peux créer quelque chose qui s'en rapproche via une view avec un FrameLayout.
    C'est ce que j'ai fait pour le moment :
    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
    <FrameLayout android:layout_width="fill_parent"
    		android:layout_height="wrap_content">	
    	<WebView android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/webview1"
        android:clickable="true"/>
        <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText android:layout_width="400dip"
    		android:layout_height="wrap_content"
    		android:gravity="top"
    		android:hint="Ecrire ici"
    		android:visibility="invisible"
    		android:id="@+id/et1"/>	
    	<Button 
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:id="@+id/ok1"
    		android:visibility="invisible"
    		android:text="OK"/>
        </LinearLayout>
        </FrameLayout>
    Mais j'aimerais pouvoir placer l'EditText n'importe où sur dans mon FrameLayout c'est pour cela que je pensais aux Widgets.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/12/2007, 13h12
  2. Requete SUM sur une table avec critère sur une autre
    Par wail00 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 16h58
  3. [Access] Requête sur une table et tri sur une autre
    Par VooDooS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/08/2006, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo