SetHomeButtonEnabled не работает, но setDisplayHomeAsUpEnabled работает

Я хочу добавить значок приложения в панель действий для всех действий в моем приложении и щелкнуть значок, я хотел бы перейти на домашнюю страницу моего приложения.

Я попытался использовать следующий код в onCreate

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setHomeButtonEnabled(true);

Теперь значок приложения появляется в панели действий, но при нажатии на него onOptionsItemSelected не получает вызов. Но если вы используете actionBar.setDisplayHomeAsUpEnabled(true) вместо actionBar.setHomeButtonEnabled(true), onOptionsItemSelected получает вызов с item.getItemId(). Ниже приведен фрагмент кода

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);

В документации говорится, что с помощью setDisplayHomeAsUpEnabled и setHomeButtonEnabled будет вызываться onOptionsItemSelected, и единственная разница - стрелка вверх. Мне не нужна стрелка вверх в панели действий, мне нужен только значок приложения. Как это можно сделать?

My minSdkVersion 14 и targetSdkVersion 21.

Ответ 2

вы можете использовать это:

Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar);
toolbar.setNavigationIcon(R.drawable.ic_back);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View view){
    finish();
    }
});