Можно ли вручную вызвать метод onCreateView
в Fragment
или, если нет, есть ли способ, которым я могу имитировать этот вызов?Можно ли вручную вызвать OnCreateView в фрагменте?
У меня есть FragmentActivity
с tabHost. Каждая вкладка содержит Fragment
, и я хочу обновить вид Fragment
, когда я нажму кнопку «Обновить». В частности, я хочу повторно вызвать метод onCreateView
.
Мой код в настоящее время выглядит следующим образом:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
view= inflater.inflate(R.layout.fragment_hall, container, false);
layoutExsternal = (RelativeLayout) view.findViewById(R.id.layoutExsternal);
layoutHall = (RelativeLayout) view.findViewById(R.id.layoutHall);
init();
return view;
}
[...]
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Log.d("itemSelected1", this.getClass().getSimpleName());
switch (item.getItemId()) {
case R.id.menu_refresh:
//HERE I want to insert a method for refresh o redraw
return true;
}
return super.onOptionsItemSelected(item);
}
Лучшим подходом было бы реорганизовать ваш onCreateView. Сначала найдите представления макета и назначьте их полям, затем вызовите метод делегата, который заполняет их. Затем активируйте действие для делегата. У вас уже есть это с помощью метода init(). Не удается обновить, просто позвоните? – k2col
Я нахожу этот подход полезным http://stackoverflow.com/a/41888950/3496570 – Nepster