我有一個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. 以編程方式構建工具欄
- 7. 如何在Android中以編程方式替換視圖?
- 8. 如何以編程方式替換/更改圖像按鈕android
- 9. 如何以編程方式替換TreeViewItem的圖標?
- 10. 如何以編程方式在工具欄面板中添加工具欄?
- 11. Android將按鈕以編程方式添加到工具欄
- 12. 以編程方式將工具欄添加到Android中的RelativeView
- 13. 更改工具欄和CollapsingToolbarLayout以編程方式滾動標誌
- 14. 如何以編程方式更改AppCompat v21工具欄主題?
- 15. 如何以編程方式點擊TinyMCE工具欄的按鈕?
- 16. 如何以編程方式獲取工具欄背景顏色?
- 17. kendo ui工具欄 - 如何以編程方式選擇按鈕
- 18. 如何以編程方式將UIButton添加到工具欄上?
- 19. 如何以編程方式將工具欄添加到LinearLayout
- 20. 如何以編程方式創建此工具欄
- 21. 以編程方式更改工具欄中的菜單圖標顏色
- 22. 在目標c中以編程方式替換菜單視圖
- 23. 以編程方式更改Qt4中的matplotlib工具欄模式
- 24. 如何在android中以編程方式添加標題欄背景圖像
- 25. 如何用kendoToolbar替換kendoGrid工具欄?
- 26. 以編程方式替換View Controller?
- 27. 以編程方式替換PowerMock的@PrepareForTest?
- 28. 用UIToolbar以編程方式替換UITabBar
- 29. 以編程方式替換片段
- 30. 以編程方式搜索+替換.doc
但是,您可以定義菜單XML圖標 –
@ cricket_007,我不想完全替換圖標。我的意思是暫時替換它們以編輯單擊的元素,然後工具欄收回它的圖標。 – GB11
我認爲你正在尋找的是一個上下文操作欄。 http://www.technotalkative.com/contextual-action-bar-cab-android/ –