簡體   English   中英

如何從 Android 中的 Activity 訪問默認 ToolBar?

[英]How do I access the default ToolBar from an Activity in Android?

我正在嘗試從內部和 Activity 的onCreateOptionsMenu函數訪問默認工具欄以更改溢出菜單圖標(三個點圖標)。 我想使用這個類提供的setOverflowIcon方法。

我已經閱讀了官方文檔、StackOverflow 和其他網站上的帖子,但一切都失敗了。

我試過例如Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 但我收到一條錯誤消息,指出R.id.toolbar不存在。

如果您正在使用AppcompatActivity ,您應該像這樣使用SupportActionBar

supportActionBar?.title = "My Activity title"

這段代碼: Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 僅當您在xml添加了Toolbar toolbar ID為Toolbar時才有效。 即使你這樣做了,你也應該在做任何事之前設置setSupportActionBar(yourToolBar) 然后直接使用supportActionBar

您可以從AppCompatActivity獲取默認工具欄

getSupportActionBar();

執行工具欄工具欄=(工具欄)findViewById(R.id.toolbar)預計不起作用,因為ID未明確存在。 每個activity-Java類都擴展了Activity(或它的直接或間接子類),你可以用它來獲取動作欄(可以這么說)。

如果您的java文件擴展了AppCompatActivity,您可以使用getSupportActionBar()來召喚ActionBar。

擴展Activity的Java文件需要getActionBar()來召喚工具欄。

此后,您可以執行諸如更改顯示的文本/標題,背景可繪制以及其他任務之類的操作。

要了解有關獲取操作欄的更多信息,請查看此鏈接

聚會有點晚了,但默認工具欄可以通過像androidx.appcompat.R.id.action_bar這樣的 id引用

findViewById(androidx.appcompat.R.id.action_bar)

使用xml創建菜單文件並將其放在res / menu文件夾中

onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.your_menu, menu);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM