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

Android Discussion :

Onglets et préférences


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut Onglets et préférences
    Bonjour,

    Je suis en train de réaliser un petit programme sous android, et afin de l'agrementer, j'aimerais y inclure une gestion d'options par le biais du systeme de preferences d'android...

    Mon probleme étant que cet ecran s'affiche dans un des onglets de l'appli. Et lorsque je cliques sur un des éléments parametrables j'ai une erreur car il cherche a afficher une boite de dialogue au niveau de mon script alors qu'il faut que je l'ouvre au niveau au dessus (le script qui gere les onglets).

    J'ai deja été confronté a ce genre de probleme et je m'en sort généralement avec un getParent sur la view...
    Le probleme c'est que dans mon code je n'ai pas de view et je ne vois pas comment faire pour que la boite de dialogue des preferences s'affiche un cran au dessus (donc au niveau du parent).

    Je ne sais pas si je suis très clair, mais voici mon 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import android.os.Bundle;
    import android.preference.PreferenceActivity;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;
     
     
    public class config_account extends PreferenceActivity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		addPreferencesFromResource(R.xml.item_account);
    	}
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.menupref, menu);
    		return super.onCreateOptionsMenu(menu);
    	}
     
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		if(item.getItemId() == R.id.itemSauver) {
    			setResult(RESULT_OK);
    			finish();
    		}
    		return super.onOptionsItemSelected(item);
    	}
     
    	@Override
    	public void onBackPressed() {
    		setResult(RESULT_OK);
    		super.onBackPressed();
    	}
    }
    Je remercie d'avance ceux qui pourront m'aider la dessus.

    Bonne journée

  2. #2
    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,

    Pourrais-tu préciser où apparait ton dialogue car j'ai du mal à saisir ton problème ?

    Est ce un dialogue généré par les préférences ou est ce toi qui le génère ?

    Merci.

  3. #3
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Bonjour,

    En gros j'ai 4 onglets ou Tab. Dans un de ceux ci j'ai une page qui etend une PreferenceActivity.

    Donc j'ai suvi deux tutoriaux qui semble fonctionner car ma page d'option s'affiche. J'ai 4 options et avec le tutorial, on voit que si on cliques sur une des options, une boite de dialogue s'affiche te permettant de définir l'option dans ton fichier de preferences.

    Mon probleme est que comme je suis dans une tabactivity, mes boites de dialogue doivent etre ciblées dans le parent (donc dans la tabactivity) et non pas uniquement sur le script en cours.

    Là quand je clique, j'ai un message d'erreur qui dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unable to add window ........ is your activity running ?
    En gros avec le bout de code donné plus haut, que dois je faire pour que la boite de dialogue s'affiche a un niveau au dessus (le parent).

    Merci d'avance
    Cadou

  4. #4
    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,

    J'ai déjà fait des tabActivity avec un appel de dialogue à partir d'une de ces Activity et cela marche .

    Le problème doit surement provenir de PreferenceActivity lui-même , par contre je ne sais pas quoi exactement ni comment changer son context.

    Après je sais que tu peux intercepter les évènements des préférences comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Preference customPref = (Preference) findPreference("tapreference");
            customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                       // appel du dialog si nécessaire 
                      showDialog(id_dialog);
            }
    Et suite à cela tu gère directement tes dialogues dans cette activity comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Override
    	protected Dialog onCreateDialog(int id) {
     
    	    switch (id) {
    	      case id_dialog:
    	    	 // tu construit ton dialogue
    	    	return tondialog;
    Comme cela ça marche mais ça t'imposera à gérer tout les évènements de ta préférences (qui ne seront du coup plus automatique ).

    Après peut être qu'il existe une autre solution .

Discussions similaires

  1. [MediaWiki] Supprimer les onglets "préférence", "suivi", etc.
    Par Nicolas123 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/07/2008, 14h28
  2. [VB.NET] Couleurs des onglets d'un TabControl
    Par ineznia dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/04/2004, 13h18
  3. mettre une JScrollBar sur un onglet
    Par thedd dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 02/03/2004, 20h12
  4. [BCB6] Probleme onglet dans IDE
    Par bgautier dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/01/2004, 16h20
  5. Changer dynamiquement la position des onglets
    Par ginnovy dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/09/2002, 18h24

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