我正在使用ABS版本4,需要简单更改默认显示在操作模式关闭图标旁边的“完成”文本,但我真的不知道如何做到这一点。
我认为该文本需要定制化至少有两个好处:
1. “完成”并非所有情况下都适用(例如,“取消”可能更合适,我看到一些应用程序,例如Galaxy Tab上的“My Files”应用程序使用它) 2. 根据用户的语言需要本地化“完成”
是否可以自定义该文本?如果可以,请问有谁能告诉我如何实现?
提前致谢。
编辑
我已经找到了一个临时解决方法,我将其发布如下:
这是我想出来的方法。请注意,它严重依赖于ABS 4.0中
对于我的情况,这个方法可行,但正如你所看到的,它不能被认为足够满意以推广为真正的“答案”,这就是为什么我只编辑了之前的帖子。
希望能帮助其他人,但我也希望有人能分享一个更好、更清洁的解决方案。
我认为该文本需要定制化至少有两个好处:
1. “完成”并非所有情况下都适用(例如,“取消”可能更合适,我看到一些应用程序,例如Galaxy Tab上的“My Files”应用程序使用它) 2. 根据用户的语言需要本地化“完成”
是否可以自定义该文本?如果可以,请问有谁能告诉我如何实现?
提前致谢。
编辑
我已经找到了一个临时解决方法,我将其发布如下:
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 4.0中
abs__action_mode_close_item.xml
的结构。对于我的情况,这个方法可行,但正如你所看到的,它不能被认为足够满意以推广为真正的“答案”,这就是为什么我只编辑了之前的帖子。
希望能帮助其他人,但我也希望有人能分享一个更好、更清洁的解决方案。