Каков наилучший способ добавить кнопку возврата на пользовательские панели инструментов? - PullRequest
0 голосов
/ 09 апреля 2020

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

        Toolbar toolbar = findViewById(R.id.tlbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

Я пытался создать общий класс, в котором я создал функцию, которую можно было вызывать в каждом упражнении, однако вам нужно findViewById, что можно сделать только в упражнении. Любые предложения по этому поводу?

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Сначала создайте базовый класс, подобный этому

public class BaseActivity extends AppCompatActivity{


    public  void setToolbar(@IdRes int toolbarID){
        try {
            Toolbar toolbar = findViewById(toolbarID);
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }catch (Exception e){
            e.printStackTrace();

        }

    }

}

После расширяет все классы деятельности с помощью класса BaseActivity

public class LoginNewActivity extends BaseActivity{

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setToolbar(R.id.toolbar); //You can call your method like this
    }
}

Если вы хотите узнать больше об этом, выполните поиск по Наследование и полиморфизм в JAVA

0 голосов
/ 09 апреля 2020

в вашем теге активности в манифесте добавьте parentactivityname и добавьте значение в качестве действия, которое вы хотите go при нажатии. Это лучшее решение для вас.

...