Мне трудно получить фрагменты для обновления своих представлений ... В частности, фрагменты, которые существуют в ViewPager с ActionBarSherlock.
Вот мой класс фрагментов:
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();
}
}
способ вызова этого фрагмента из моего FragmentActivity заключается в следующем ...
SearchFragment searchInterests = new SearchFragment();
Мои представления во фрагменте правильно настроены при первом запуске, но когда я вызываю что-то вроде ...
searchInterests.update();
из FragmentActivity, чтобы обновить некоторые представления, getView () из
TextView tv = (TextView) getView().findViewById(R.id.results);
возвращает ноль и завершается ошибкой.Я изо всех сил пытаюсь понять, почему это так. Кто-то сказал мне, что это потому, что мой фрагмент не привязан ни к чему ... Я не совсем понимаю эту часть и не только это, но я просто не понимаю, почему getView ()указывает на ноль, если onCreateView был успешным в первый раз?Разве getView () не возвращает представление, возвращаемое onCreateView?Вот полный набор кодов: https://gist.github.com/1369653