我有一个ListView
和一个Toolbar
以上它在我的Activity
。我想在点击ListView
的项目执行某些操作时,用删除和编辑图标替换Toolbar
默认图标(搜索和设置)。如何以编程方式替换Android工具栏图标?
0
A
回答
1
所以,我从你的问题中了解到,你正在寻找ActionMode这可能符合你的目的。
所以这里有一个实施指南。
在您的Activity
中声明ActionMode
并让您的Activity
实施ActionMode.Callback
。
public class YourActivity extends AppCompatActivity implements ActionMode.Callback {
// Declare ActionMode here
private ActionMode actionMode;
// Now implement the callback functions for ActionMode
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onCreateActionMode(final ActionMode actionMode, Menu menu) {
MenuInflater inflater = actionMode.getMenuInflater();
// Inflate your menu here
inflater.inflate(R.menu.list_item_click_menu, menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_delete:
// Do something
actionMode.finish();
return true;
case R.id.action_edit:
// Do something
actionMode.finish();
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
try {
this.actionMode = null;
// Do something. Reset the views maybe?
} catch (Exception e) {
e.printStackTrace();
}
}
}
我们发起您的ActionMode
你需要有这个在您的列表项的onClick
功能。
listItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (actionMode != null) {
return true;
}
// Show ActionMode
actionMode = startSupportActionMode(this);
actionMode.invalidate();
}
});
有时您可能需要重置ActionMode
。
@Override
public void onResume() {
super.onResume();
if (actionMode != null) {
actionMode.finish();
actionMode = null;
}
}
+0
非常感谢Raez Murshard,这正是@ cricket_007建议的我所需要的。 – GB11
相关问题
- 1. 如何以编程方式更改android工具栏中的图标?
- 2. 如何以编程方式实例化Android中的工具栏?
- 3. 如何以编程方式重复工具栏背景图像?
- 4. 用图标替换工具栏标题
- 5. 以编程方式构建工具栏
- 6. 如何以编程方式替换/更改图像按钮android
- 7. 如何以编程方式替换TreeViewItem的图标?
- 8. 如何以编程方式在工具栏面板中添加工具栏?
- 9. Android将按钮以编程方式添加到工具栏
- 10. 以编程方式将工具栏添加到Android中的RelativeView
- 11. 更改工具栏和CollapsingToolbarLayout以编程方式滚动标志
- 12. 如何以编程方式获取工具栏背景颜色?
- 13. 如何以编程方式点击TinyMCE工具栏的按钮?
- 14. 如何以编程方式将工具栏添加到LinearLayout
- 15. 以编程方式切换标签android
- 16. 以编程方式更改工具栏中的菜单图标颜色
- 17. 在目标c中以编程方式替换菜单视图
- 18. 如何用kendoToolbar替换kendoGrid工具栏?
- 19. 工具栏中的标题图像对齐方式android
- 20. 以编程方式搜索+替换.doc
- 21. 以编程方式替换片段
- 22. 以编程方式设置工具栏layout_collapseMode
- 23. 以编程方式在WPF中创建工具栏
- 24. Eclipse RCP以编程方式获取工具栏贡献
- 25. 以编程方式触发ReportViewer工具栏控件
- 26. UISegmentedControl以编程方式从工具栏中更改值点击
- 27. 以编程方式在iPhone键盘上对齐工具栏
- 28. 如何以编程方式在Android中换出视图控件?
- 29. Android LayerDrawable:如何以编程方式设置图层坐标?
- 30. Android工具栏 - 以编程方式更改导航图标的高度和宽度
但是,您可以定义菜单XML图标 –
@ cricket_007,我不想完全替换图标。我的意思是暂时替换它们以编辑单击的元素,然后工具栏收回它的图标。 – GB11
我认为你正在寻找的是一个上下文操作栏。 http://www.technotalkative.com/contextual-action-bar-cab-android/ –