È possibile chiamare manualmente il metodo onCreateView
in un Fragment
oppure, in caso contrario, esiste un modo per simulare questo richiamo?È possibile chiamare manualmente onCreateView in un frammento?
Ho un FragmentActivity
con tabHost. Ogni scheda contiene un Fragment
e voglio aggiornare la vista di Fragment
quando premo il pulsante "Aggiorna". Più specificamente, voglio richiamare il metodo onCreateView
.
Il mio codice attualmente si presenta come:
@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);
}
Un approccio migliore sarebbe quello di refactoring il tuo onCreateView. Prima trova le visualizzazioni del layout e assegnale ai campi, quindi chiama un metodo delegato che li inserisce. Quindi fare in modo che l'azione di aggiornamento chiami il delegato. Sembra che tu abbia già questo con il tuo metodo init(). Non è possibile aggiornare solo chiamare questo? – k2col
Trovo questo approccio utile http://stackoverflow.com/a/41888950/3496570 – Nepster