J'ai du mal à obtenir des fragments pour mettre à jour leurs vues ... Plus précisément, les fragments qui existent dans un ViewPager avec ActionBarSherlock.Android Fragment Problems
Voici ma classe de fragment:
public class SearchFragment extends Fragment{
private String mInterests;
private String mSentence;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.bounty_search_layout, container, false);
}
@Override
public void onResume() {
super.onResume();
getUserInterests();
}
/*
* Get the users interests from the underlying
* data store.
*/
public void getUserInterests() {
TextView tv = (TextView) getView().findViewById(R.id.bounty_search_txtResult);
DatabaseHelper dbHelper = new DatabaseHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(DatabaseConstants.TABLE_NAME, null, null, null, null, null, null);
cursor.moveToFirst();
mInterests = cursor.getString(cursor.getColumnIndex(DatabaseConstants.INTERESTS));
if(mInterests.length() == 0) {
mSentence = "You have no interests.";
}
else {
mSentence = "Your interests are: ";
mInterests = cursor.getString(cursor.getColumnIndex(DatabaseConstants.INTERESTS));
}
tv.setText(mSentence + mInterests);
cursor.close();
db.close();
dbHelper.close();
}
}
La façon dont j'appelle ce fragment de mon FragmentActivity est dans ce qui suit ...
SearchFragment searchInterests = new SearchFragment();
Mes vues dans le fragment sont correctement configuré quand il s'exécute en premier, mais quand j'appelle quelque chose comme ...
searchInterests.update();
de la FragmentActivity, à mettre à jour certaines vues, le getView() de
TextView tv = (TextView) getView().findViewById(R.id.results);
renvoie null et échoue. J'ai du mal à comprendre pourquoi c'est ... Quelqu'un m'avait dit que c'est parce que mon fragment n'est attaché à rien ... Je ne comprends pas bien cette partie et pas seulement ça mais je ne comprends tout simplement pas pourquoi getView() points à null si onCreateView a réussi la première fois? Ne pas getView() obtient la vue retournée par onCreateView? Voici le jeu complet de code: https://gist.github.com/1369653