Активность
public abstract class BaseActivity extends AppCompatActivity {
private ProgressBar progressBar;
public void showLoading() {
progressBar.setVisibility(View.Visible);
}
public void hideLoading() {
progressBar.setVisibility(View.Gone);
}
}
Фрагмент
((BaseActivity) getContext).showLoading();
Теперь это простой и небезопасный способ сделать это.
Другой способ сделать это - внедрить это в свою деятельность. Поместите прогресбар в xml.
public interface OnProgressChanged {
void show();
void hide();
}
затем на каждом фрагменте
OnProgressChanged onProgressChangedListener;
@override
onAttach(Context context) {
Activity activity = null;
if (context instanceof Activity){
activity = (Activity) context;
}
try {
onProgressChangedListener = (OnProgressChanged) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnProgressChanged");
} catch(NullPointerException e) {
throw new ClassCastException("Error: onAttach(Context context) -> context not instance of Activity");
}
}
// somewhere else in the code
onProgressChangedListener.show();
Есть много способов сделать то, что вы хотите. Я бы посмотрел на модель MVP, если бы я был тобой.