Как добавить элементы в ToolBar если он не прописан в activity_main.xml?
В Android Studio создаем Empty Activity. Как добавить допустим кнопку на этот стандартный тулбар?
Ответы (1 шт):
Если нет в разметке, но по теме есть, нужно брать системный бар:
getSupportActionBar()
Дальше после этого нужно в папке res/menu (если нет создайте) добавить менюшку, например main_menu.xml (файл взял например):
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/action_search"
android:orderInCategory="200"
android:title="Search"
android:icon="@drawable/ic_search"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_user"
android:orderInCategory="300"
android:title="User"
android:icon="@drawable/ic_user"
app:showAsAction="ifRoom" />
</menu>
дальше идем в активность и прикрепляем к вашему тулбару созданное меню и нажимаем ctrl+o и ищем методы которые ниже:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
и делаем выбор элементов которые вы сделали в ресурсах. Вот есть туториал по данному вопросу.
UPDATE
После создания empty activity вам нужно будет проверить нету ли в теме тулбара, потому что тогда после перетаскивания их будет два. Если я правильно понял, то под перетаскиванием вы подразумеваете использование Palette и виджетов в ней. После того как вы перетащили тулбар в редакторе дизайна, у вас будет что-то типа такого:
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:titleTextColor="@android:color/white"
android:background="?attr/colorPrimary">
</androidx.appcompat.widget.Toolbar>
дальше вы можете работать с ним из под активности:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ну и разумеется использовать приведенные выше методы для работы с менюшкой из ресурсов.