是否可以在Android操作欄中禁用按鈕?我四處尋找,我找不到任何代碼片段,我認爲應該有一些簡單的方法。在Android中禁用操作欄按鈕
15
A
回答
42
一旦你的時候,你要禁用的操作欄,設置一些標誌執行用戶動作,說
disableButtonFlag
。致電
invalidateOptionsMenu()
。這將觸發onCreateOptionsMenu
被調用來重新生成菜單。最後根據
disableButtonFlag
的狀態修改您的onCreateOptionsMenu
以禁用所需的按鈕。if (disableButtonFlag) { menu.findItem(R.id.your_item).setEnabled(false); } else { menu.findItem(R.id.your_item).setEnabled(true); }
或者更簡單地說:
menu.findItem(R.id.your_item).setEnabled(!disableButtonFlag);
0
你可以做這樣的事情:
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
menu.findItem(R.id.your_item).setEnabled(false);
return super.onCreateOptionsMenu(menu);
}
3
對於Android開發誰使用自定義ActionBar
即(保存&取消操作按鈕),我曾嘗試下面的代碼來禁用取消操作按鈕如下:
Java代碼:
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View actionBarButtons = inflater.inflate(
R.layout.edit_event_custom_actionbar, new LinearLayout(this),
false);
View cancelActionView = actionBarButtons
.findViewById(R.id.action_cancel);
cancelActionView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
cancelActionView.setEnabled(false);
View doneActionView = actionBarButtons.findViewById(R.id.action_done);
doneActionView.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
getActionBar().setDisplayShowHomeEnabled(false);
getActionBar().setDisplayShowTitleEnabled(false);
getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setCustomView(actionBarButtons);
edit_event_custom_actionbar.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="?attr/dividerVertical"
android:dividerPadding="12dp"
android:orientation="horizontal"
android:showDividers="middle" >
<!-- id must match corresponding menu item id -->
<TextView
android:id="@+id/action_cancel"
style="@style/EditEventCustomActionButton"
android:text="@string/cancel_label"
android:drawableLeft="@drawable/ic_action_cancel" android:padding="5dp" />
<!-- id must match corresponding menu item id -->
<TextView
android:id="@+id/action_done"
style="@style/EditEventCustomActionButton"
android:text="@string/abc_action_mode_done"
android:drawableLeft="@drawable/abc_ic_cab_done_holo_dark" android:paddingRight="5dp" />
</LinearLayout>
而這種代碼添加到您的/values/styles.xml:
<style name="EditEventCustomActionButton" parent="android:style/Widget.Holo.Light.ActionButton">
<item name="android:layout_height">match_parent</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:focusable">true</item>
<item name="android:textColor">#FFFFFF</item>
</style>
0
的簡單方法在操作禁用按鈕酒吧是保存對onCreateOptionsMenu()
菜單的引用:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
mMenu = menu; // Save reference
return super.onCreateOptionsMenu(menu);
}
,然後調用setEnabled()
上的菜單項來啓用或禁用:
mMenu.findItem(R.id.my_action_item).setEnabled(false);
無需通過調用invalidateOptionsMenu()
重新創建菜單。
相關問題
- 1. android:禁用操作欄主頁按鈕
- 2. 操作欄「操作按鈕」以編程方式禁用/啓用?
- 3. 如何在ActionMode中禁用操作欄後退按鈕
- 4. Android:在操作欄中檢測到禁用項目的點按?
- 5. Android操作欄主頁按鈕
- 6. 在android中使用活動鏈接操作欄按鈕?
- 7. Android動作按鈕沒有顯示在操作欄中
- 8. 操作按鈕轉到操作欄
- 9. GridView按鈕操作欄
- 10. 操作欄按鈕背景
- 11. 禁用Android主按鈕和通知欄
- 12. Android操作欄 - 禁用選項菜單
- 13. 的Android操作欄:更改操作按鈕的顏色
- 14. 在XPages中浮動工具欄/操作欄/按鈕欄?
- 15. Android Studio 0.5.7不會在操作欄中顯示按鈕
- 16. 啓用操作欄的主頁按鈕
- 17. 從操作欄中刪除按鈕
- 18. 操作欄中的向上按鈕
- 19. 在操作欄上分享按鈕?
- 20. 網站操作按鈕已禁用
- 21. 長時間操作時禁用按鈕
- 22. 電梯禁用後退按鈕操作
- 23. 按鈕在android中單擊操作?
- 24. Android禁止導航欄後退按鈕
- 25. 如何在android 2.3中禁用通知欄和主頁按鈕?
- 26. Android中的禁用按鈕
- 27. Android禁用按鈕
- 28. 用於Android的操作欄被菜單按鈕取代?
- 29. 如何使用搜索按鈕自定義Android操作欄
- 30. 操作欄崩潰應用的後退按鈕android
但我需要ActionBar,我對應用程序有要求。我需要繼續使用ActionBar,並且當用戶添加一個文件時,我需要禁用添加更多文件(添加文件的按鈕位於ActionBar中)。 – Mediha
哦,禁用按鈕,編輯。我假設刪除操作欄,通常是禁用操作欄似乎意味着一般。 – Slartibartfast
這正是我所做的。謝謝。 – Mediha