Intereting Posts
Почему ContentProvider.onCreate () вызывается перед Application.onCreate ()? ERROR получает атрибут android: label: атрибут не является строковым значением Android заморозится в OpenGL | ES (процессор может быть привязан, снова пытается.) Как открыть файл .db. Файл .db создается из формы eclipse (android) DDMS -> File explorer -> data —> data -> packagename -> database …? Разрешения на листинг приложения Android через adb Android: как определить, вспыхнула ли камера Использование редактора общих настроек Regex для удаления пробелов между номерами Android Google Maps API V2 центральные маркеры Виды с одинаковыми идентификаторами, получающими одинаковые атрибуты при восстановлении Динамическое обновление адаптера AutoCompleteTextView Можем ли мы установить INSTALL_REFERRER два раза в одном приложении для Android? Как сделать свой Android ContentObserver для ContactsContract обнаруженным добавленным, обновленным или удаленным контактом? Проверьте мобильный сайт для Android или BlackBerry Как установить равное расстояние с Android GridView?

Возможно ли обновить представление фрагмента

Я изменил locale своего приложения программно , например:

 Resources res = context.getResources(); DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Configuration conf = res.getConfiguration(); conf.locale = new Locale("cn"); res.updateConfiguration(conf, dm); 

После этого я хочу обновить отображение текущего отображаемого фрагмента для отображения с новыми настройками локали.

Итак, я сначала получаю текущий фрагмент (последний из них в backstack ):

 BackStackEntry latestEntry=fragMgr.getBackStackEntryAt(fragMgr.getBackStackEntryCount()-1); String str=latestEntry.getName(); Fragment fragment=fragMgr.findFragmentByTag(str); 

После того, как я получу текущий фрагмент, я хотел бы обновить его представление , но как это сделать? Возможно ли в Android обновить представление фрагмента

Solutions Collecting From Web of "Возможно ли обновить представление фрагмента"

Вы можете просто отсоединить и прикрепить фрагмент, как показано ниже.

  Fragment currentFragment = getFragmentManager().findFragmentByTag("FRAGMENT"); FragmentTransaction fragTransaction = getFragmentManager().beginTransaction(); fragTransaction.detach(currentFragment); fragTransaction.attach(currentFragment); fragTransaction.commit(); 

Это обновит представление, и локаль изменится

Вы можете создать прослушиватель, который будет вызываться при изменении локали. Затем он удалит фрагмент и снова добавит фрагмент. Затем ваш новый язык должен быть поднят.