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 :

Problème d'internationalisation lors d'un changement d'activité


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut Problème d'internationalisation lors d'un changement d'activité
    Bonjour,

    Je développe actuellement une application android multilingue ou après avoir sélectionné un élément dans une liste je dois lire une vidéo associé

    L'affichage de la liste est en mode portrait uniquement et j'aimerai que la lecture de la vidéo se fasse en mode paysage uniquement

    Mon problème est que lorsque je veux passé de l'activité en mode portrait à l'activité en mode paysage, la configuration locale de l'application change et prend la langue défini dans l'appareil au lieu de la langue défini dans l'application

    Voici quelques bout de code:

    Manifest.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="playcorp.fitness.light"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="4" />
    	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
     
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".SplashActivity"
                      android:label="@string/app_name"
                      android:theme="@android:style/Theme.NoTitleBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".LangueActivity" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"></activity>
            <activity android:name=".HomeActivity" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"></activity>
            <activity android:name=".ProgrammeActivity" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"></activity>
            <activity android:name=".InfoActivity" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"></activity>
            <activity android:name=".ProgrammeDetailActivity" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"></activity>
            <activity android:name=".VideoPlayerActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="landscape"></activity>
    		<meta-data android:value="fitness_integral" android:name="code_application"></meta-data>
        </application>
    </manifest>

    Lancement de mon activité Video
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void onClickVideo(Video item, int position) {
    		// TODO Auto-generated method stub
    		Intent intent =new Intent(getApplication().getApplicationContext(), VideoPlayerActivity.class);
    		intent.putExtra("video", item.getId());
    		startActivity(intent);
    	}
    layout de mon lecteur vidéo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <VideoView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/player">
    </VideoView>
    mac classe VideoPlayerActivity
    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
     
    public class VideoPlayerActivity extends Activity{
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		Log.i(null, this.getResources().getConfiguration().locale.getDisplayLanguage());
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
     
    		setContentView(R.layout.player);
     
    		VideoView view = (VideoView) findViewById(R.id.player);
    		Bundle b = getIntent().getExtras();
     
    		int idVideo = b.getInt("video");
    		String code_langue = getApplicationContext().getString(R.string.code_langue);
    		Video v = null;
    		try {
    			v = DBVideo.getById(idVideo);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		view.setMediaController(new MediaController(this));
    		view.setVideoURI(Uri.parse(Utils.mediasVideoLink+"vdo-"+v.getCode()+"-"+code_langue+"-ip3g.mp4"));
    		view.requestFocus();
    		view.start();
     
     
    	}
    Donc en gros ma question se résume à Comment lire une vidéo en mode paysage même si nos activités précédentes sont en mode portrait


    Je vous remercie d'avance de l'attention que vous porterez à mon message

    Cordialement

    julien

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String code_langue = getApplicationContext().getString(R.string.code_langue);
    Récupère bien la langue que tu veux?

    Comment modifies tu la langue de ton application?
    Cela fonctionne t il lorsque tu passes à une autre activity?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String code_langue = getApplicationContext().getString(R.string.code_langue);
    Ce bout de code me renvoi la bonne langue dans toutes mes activités sauf pour celle en mode paysage

    Pour changer la langue de mon application j'appliquais une nouvelle configuration a mon intent, en modifiant la propriété locale suivant la langue voulu.

    Cela marche correctement entre mes activités en mode portrait je n'ai aucun soucis, j'ai aussi essayé de mettre ma videoView en mode portrait et cela fonctionne également donc je pense vraiment que le problème vient du fait que je passe d'une activité en mode portrait à une activité en mode paysage.

    J'ai aussi essayé de tester si lors de la création de mon activité VideoView je détectais ce changement de configuration mais rien ne se passe je n'entre pas dans l'évènement onConfigurationChanged

    Le seul soucis est vraiment quand je passe de cette activité en mode portrait, vers une activité en mode paysage

    De ce que j'ai compris lors d'une rotation d'affichage l'activité est détruite puis recrée, mais qu'en est-il entre 2 activités différentes, la seconde est-elle d'abord instancié en mode portrait puis détruite et recrée en mode paysage ?


    En tout cas merci de votre aide

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Salut,
    Essaye d'ajouter ceci dans chaque Activity dans ton manifest:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    android:configChanges="keyboardHidden|orientation"

Discussions similaires

  1. [XL-2010] Liens entre fichiers excel : problème lors d'un changement de dossier
    Par Angélique01 dans le forum Excel
    Réponses: 3
    Dernier message: 27/01/2015, 00h22
  2. Problème d'affichage lors du changement de panel
    Par momop72 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 11/12/2013, 11h43
  3. Problème caratères spéciaux lors de changement d'OS
    Par pony99 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 28/01/2012, 21h16
  4. [WSS 3.0] Problème lors d'un changement d'utilisateur
    Par solveig dans le forum SharePoint
    Réponses: 7
    Dernier message: 05/06/2007, 18h17
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 23h22

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