Простая панель действий с использованием getSupportActionBar () - добавление дома <и значок настроек - PullRequest
0 голосов
/ 28 апреля 2018

Мне было интересно, можно ли просто добавить строку кода, чтобы добавить значок настроек на мою панель действий. У меня есть несколько страниц, на которых есть простая кнопка «Назад», но я хотел бы добавить еще одну кнопку на панель. Является ли это возможным? Или мне нужно пройти весь процесс пунктов меню панели инструментов и т. Д. И т. Д.? Вот код

Использование AppCompatActivity

При создании:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

            if (id == android.R.id.home) {
        finish();
    }

    return super.onOptionsItemSelected(item);
}

Просто пытаюсь упростить вещи. Я сделал пользовательские панели инструментов до того, как вы загрузите панель инструментов и пункты меню. Но было просто интересно, если бы вы могли сделать это через это, поскольку я просто хочу дополнительную кнопку:)

1 Ответ

0 голосов
/ 28 апреля 2018

Да, это возможно.

Сначала вам нужно создать setting.xml

<item
android:id="@+id/setting"
android:title="@string/menu_setting_label"
android:icon="@drawable/setting"
android:showAsAction="always"
/>

Затем переопределите ваши onCreateOptionsMenu и onOptionsItemSelected

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.setting, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.setting:
              .... // your code
            break;
    }
    return super.onOptionsItemSelected(item);
}
...