我正在使用ABS vers.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) …Run Code Online (Sandbox Code Playgroud) 我有一个带有双窗格的活动:左侧的菜单项列表(片段M)和右侧当前所选项目的详细信息(片段D).
当用户选择片段D中的项目时,片段D将被另一个片段替换(让我们称之为D1).当用户选择片段D1中的项目时,片段D1将被另一个片段替换(让我们称之为D2),依此类推.当然,当用户按下后退按钮时,她可以返回片段历史记录:D2-> D1-> D.
我的问题是:如何在配置更改时保存和恢复完整的片段后备栈(特别是在屏幕方向上)?
我之前没有其他人遇到这个问题似乎很奇怪,但我在Google和Stack Overflow上的搜索过程中没有发现任何相关信息.如果我错过任何相关的帖子,请告诉我.
我知道我可以简单地将android:configChanges="orientation|screenSize"属性添加到我的活动中以避免活动娱乐,但我根本无法做到这一点.
我不能这样做的原因是我使用Action Bar Sherlock(第4节)来实现向后兼容性,并且该组件需要活动重新创建才能在配置更改时正常运行,AFAIK.
如果有其他方法重新创建Action Bar Sherlock组件而不破坏并重新创建活动,请告诉我.
提前致谢.
我正在尝试基于Android文档末尾提供的有关Fragments 的示例代码构建拆分窗格,基本上是一个包含两个片段的LinearLayout(所有细节都可以在上面的链接中找到):
TitlesFragment 显示标题列表DetailsFragment 显示当前所选标题的详细信息我的问题是发生以下意外行为:
CHOICE_MODE_SINGLE并且其项目实现了Checkable界面.CHOICE_MODE_NONE.DetailsFragment与所做选择相对应的活动.DetailsFragment右侧正确显示项目Y的详细信息(以纵向方向选择),但TitlesFragment仍然显示项目X为选中(即之前选择的项目)第一个屏幕旋转).当然,我希望在纵向方向上进行的最后一次选择也正确显示在其中TitlesFragment,否则我最终会出现一个不一致的突出显示,在显示项目Y的详细信息时显示项目X.
我发布了更改ListView模式的相关代码(在'onActivityCreated'中)并且设置了所选项(在'showDetails'方法中):
public static class TitlesFragment extends ListFragment {
boolean mDualPane;
int mCurCheckPosition = 0;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Populate list with our static array of titles.
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
// Check to …Run Code Online (Sandbox Code Playgroud)