У меня есть несколько действий и фрагментов. Я хотел бы установить панель инструментов в BaseActivity (поэтому установите ее только один раз). Но нужен доступ к панели инструментов из фрагмента (метод вроде - show, hide, changeTitle и т. Д.) Любое предложение?Панель инструментов в BaseActivity
Я попытался решение ниже, но когда я хочу, чтобы скрыть фрагмент, NPException показан
public abstract class BaseActivity extends AppCompatActivity {
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResource());
configureToolbar();
}
protected abstract int getLayoutResource();
private void configureToolbar() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
public void hideToolbar() {
toolbar.setVisibility(View.GONE);
}
Моя активность
public class MyActivity extends BaseActivity() {
}
я называю hideToolbar в фрагменте, как:
public class MyFragment extends Fragment() {
onCreate() {
((Myactivity)getActivity).hideToolbar();
}
Добавьте более подробную информацию на ваш вопрос. Как вы вызываете метод 'hideToolbar' внутри вашего фрагмента ?. Как выглядит производная деятельность? Вы просто предоставили определение абстрактного класса, а не реализацию, так трудно ответить, где проблема – akash93