ActionBarSherlock (ABS): как настроить текст закрытия элемента режима действия?

Я использую ABS вер. 4, и мне нужно просто изменить текст «Готово» по умолчанию, который отображается рядом со значком закрытия режима действий, но я действительно не могу понять, как это сделать.

Я думаю, что текст должен быть настраиваемым по крайней мере по двум веским причинам:

  • «Готово» не подходит для всех контекстов (например, «Отмена» может быть более подходящим, и я видел некоторые приложения, такие как приложение «Мои файлы» на Galaxy Tab, используйте его)

  • «Готово» необходимо локализовать в соответствии с языком пользователя

Можно ли настроить этот текст? Если да, то может ли кто-нибудь сказать мне, как это сделать?

Заранее спасибо.

РЕДАКТИРОВАТЬ

Я нашел временный обходной путь, который я публикую в следующем:

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.xmlABS 4.0.

Это работает для моего сценария, но, как видите, его нельзя считать достаточно удовлетворительным, чтобы превратить его в настоящий «ответ», поэтому я только отредактировал свой предыдущий пост.

Надеюсь, что это поможет кому-то еще, но я также надеюсь, что кто-то может поделиться лучшим и более чистым решением.

12
задан Alex Lockwood 24 June 2012 в 16:38
поделиться