Я использую ABS версии. 4, и мне нужно просто изменить текст «Готово» по умолчанию, который отображается рядом со значком закрытия режима действий, но я действительно не могу понять, как это сделать.
Я думаю, что текст должен быть настраиваемым по крайней мере по двум веским причинам:
«Готово» не подходит для всех контекстов (например, «Отмена» может быть более подходящей, и я видел, как некоторые приложения, такие как приложение «Мои файлы» на вкладке Galaxy, используют его)
«Готово» необходимо локализовать в соответствии с языком пользователя.
Можно ли настроить этот текст? Если да, то может ли кто-нибудь сказать мне, как это сделать?
Заранее спасибо.
ИЗМЕНИТЬ
Я нашел временное обходное решение, которое я публикую в следующем:
private TextView getActionModeCloseTextView() {
// ABS 4.0 defines action mode close button text only for "large" layouts
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE)
{
// retrieves the LinearLayout containing the action mode close button text
LinearLayout action_mode_close_button =
(LinearLayout) getActivity().findViewById(R.id.abs__action_mode_close_button);
// if found, returns its last child
// (in ABS 4.0 there is no other way to refer to it,
// since it doesn't have an id nor a tag)
if (action_mode_close_button != null) return (TextView)
action_mode_close_button.getChildAt(action_mode_close_button.getChildCount() - 1);
}
return null;
}
Это метод, который я придумал. Пожалуйста, ОТМЕТЬТЕ, что он сильно зависит от структуры abs__action_mode_close_item.xml
из ABS 4.0.
Это работает для моего сценария, но, как видите, его нельзя считать достаточно удовлетворительным, чтобы превратить его в настоящий «ответ», поэтому я только отредактировал свой предыдущий пост.
Надеюсь, что это поможет кому-то еще, но я также надеюсь, что кто-то может поделиться лучшим и более чистым решением.