Я новичок в программировании.У меня есть простое приложение с несколькими действиями, и мне нужно использовать Context в этих действиях.Ссылка: https://openclassrooms.com/en/courses/4661936-develop-your-first-android-application/4679186-learn-the-model-view-controller-pattern и ответ в MVC для простого приложения говорят, что мне не нужен MVC для простого приложения, и я хочу избежать его использования.Что было бы наилучшей практикой для получения контекстов в моем случае?Я думаю static Context
может вызвать утечки памяти.Должен ли я просто звонить getContext()
каждый раз, когда мне нужен контекст?(Я проверял это, это работает).Он не работает с this
, только с getContext()
.Я думаю, что это потому, что это внутри фрагментов.Спасибо
Для лучшего понимания: это часть того, что у меня есть:
public class MainApplication extends Application
{
@Override
public void onCreate()
{
super.onCreate();
FirstManager.createInstance(getApplicationContext());
}
}
Я передаю этот контекст с помощью конструктора в FirstManager.Если у меня больше занятий / классов, чем только в FirstManager, лучше будет написать еще раз getApplicationContext()
или написать в области видимости что-то вроде: Context context;
после onCreate
: getContext()
и сохранить его в context
?
ОБНОВЛЕНИЕ: Это фрагмент (другие фрагменты похожи, ничего особенного):
public class List extends Fragment {
...
private FloatingActionButton fab;
private FloatingActionButton fdb;
private RecyclerView recyclerView;
...
@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
fab = ( FloatingActionButton ) view.findViewById(R.id.floatingActionButton);
recyclerView = (RecyclerView) view.findViewById(R.id.RView);
fdb = ( FloatingActionButton ) view.findViewById(R.id.floatingDeleteButton);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getContext(), FloatingButtonActivity.class));
}
});
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getContext(),1);
recyclerView.addItemDecoration(dividerItemDecoration);
}
@Override
public void onResume() {
super.onResume();
final RAdapter radapter = new RAdapter(getContext(),getActivity());
recyclerView.setAdapter(radapter);
fdb.hide();
fdb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
radapter.deleteSelection();
}
});
}
}