1

アプリでアプリのローカリゼーションを変更しようとしています。アクションバーのサブメニューから変更しようとしています:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
SubMenu langSelection = menu.addSubMenu(getString(R.string.message_lang));

            langSelection.add(getString(R.string.message_eng)).setOnMenuItemClickListener(new
                    OnMenuItemClickListener()
            {

                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        // TODO Auto-generated method stub
                        System.out.println("ENG");
                        try{

                            String languageToLoad  = "en";  
                            Locale locale = new Locale(languageToLoad);   
                            Locale.setDefault(locale);  
                            Configuration config = new Configuration();  
                            config.locale = locale;  
                            //getBaseContext().getResources().updateConfiguration(config,   
                           // getBaseContext().getResources().getDisplayMetrics());  

                            mContext.getApplicationContext().getResources()
                            .updateConfiguration(config, null);


                        }catch (Exception e) {
                            // TODO: handle exception
                            e.printStackTrace();
                        }


                        return true;
                    }

            });
            MenuItem subMenu1Item = langSelection.getItem();
            //setting pic for Actions
           // subMenu1Item.setIcon(R.drawable.icon57);
            subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        }

        return super.onCreateOptionsMenu(menu);
    }

このコードは FragmentActivity にあります。ミニフェストで私が追加した:

android:configChanges="locale"

しかし、私が言語を変更すると、これは呼び出されません:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    System.out.println("onConfigurationChanged() Called");
    super.onConfigurationChanged(newConfig);
}

私は何かを忘れましたか?

ありがとう

4

0 に答える 0