2013-01-11 115 views
3

我的应用程序中有CAB菜单。我有要求将“完成”按钮上的文本更改为“添加”。我怎样才能做到这一点?上下文操作栏Android中“完成”按钮的文本更改

我能够看到设计元素,但不符合我的要求。

<item name="android:actionModeCloseDrawable"></item> 
<item name="android:actionModeCutDrawable"></item> 
<item name="android:actionModeCopyDrawable"></item> 
<item name="android:actionModePasteDrawable"></item> 
<item name="android:actionModeSelectAllDrawable"></item> 
<item name="android:actionModeBackground"></item> 
<item name="android:actionModeCloseButtonStyle"></item> 
+2

恕我直言,“添加”不解雇的工作模式时,才有意义。行动模式本身不应该改变任何事物的状态,只是通过显示而已。它只是带来了额外的操作,旨在对某些东西进行操作(例如,在列表中检查过的项目)。 – CommonsWare

+0

当操作栏被解除时,我将一些项目添加到我的列表中。所以如果文本是“ADD”而不是“DONE”,那将会很好。在解散动作模式的过程中进行任何操作是错误的吗? – intrepidkarthi

+1

“当操作栏被解雇时,我将一些项目添加到我的列表中” - 恕我直言,这不是一个好主意。动作模式只不过是一个更好看的上下文菜单。显示一个菜单,而不是从中选择任何东西,不应该是一个破坏性的行为。同样,显示一个动作模式,而不是做任何事情,不应该是一个破坏性的行为。再次,这是我的全部意见。 – CommonsWare

回答

-3

您可以像其他菜单一样在xml文件中定义此项。然后引用回调像这样

private final class ModeCallback implements ActionMode.Callback { 

    @Override 
    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
     MenuInflater inflater = Activity.getSupportMenuInflater(); 
     inflater.inflate(R.menu.contexual_menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 

     return false; 
    } 

    @Override 
    public void onDestroyActionMode(ActionMode mode) { 
     //Destroy something 
    } 

    @Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     Toast.makeText(Activity.this, "Well done you made an custom CAB", Toast.LENGTH_SHORT).show(); 

    } 
}; 

确保您启动actionMode这样

startActionMode(new ModeCallback()); 
+0

我有一个Action模式监听器的工作代码。我不是那样要求的。我只想更改CAB菜单左侧刻度线上的文字(“完成”)。 – intrepidkarthi

+0

您应该编辑您写下的问题“我有要求将”完成“按钮上的文本更改为”添加“” – jiduvah

+4

这不是问题所在。 –

相关问题