У меня проблема с использованием Butterknife libray. Существует у меня есть SearchActivity.class использовать ViewPager с 3 фрагмента в FragmentSearchAdapter:Butterknife view in Fragment является пустой ссылкой, если звонок из родительской активности
SearchActivity.class
mAdapter = new FragmentSearchAdapter(getSupportFragmentManager(), SearchActivity.this);
mAdapter.addFragment("search histori");
mAdapter.addFragment("search query");
mAdapter.addFragment("search result");
mPager.setAdapter(mAdapter);
mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageSelected(int currentIndex) {
if(currentIndex==2) {
SearchResultFragment SearchResultFragment = (SearchResultFragment) mAdapter.getItem(2);
if (SearchResultFragment != null) {
SearchResultFragment.setDescription("Text 1","Text 2");
}
}
}
public void onPageScrolled(int arg0, float arg1, int arg2) { }
public void onPageScrollStateChanged(int arg0) { }
});
FragmentSearchAdapter.class
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
SearchHistoryFragment search_histori = new SearchHistoryFragment();
return search_histori;
case 1:
SearchQueryFragment search_query = new SearchQueryFragment();
return search_query;
case 2:
SearchResultFragment search_result = new SearchResultFragment();
return search_result;
}
return null;
}
Где один фрагмент SearchResultFragment. Класс
public class SearchResultFragment extends Fragment {
@Bind(R.id.text1)
TextView text1;
@Bind(R.id.text2)
TextView text2;
private String page_index;
private PageAlquranActivity activity;
public SearchResultFragment() {
}
public static SearchResultFragment newInstance(int page_index) {
SearchResultFragment fragment = new SearchResultFragment();
Bundle args = new Bundle();
args.putString(Variabel.page_index, String.valueOf(page_index));
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
page_index = getArguments().getString(Variabel.page_index);
}
activity = (PageAlquranActivity) getActivity();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_search_result, container, false);
ButterKnife.bind(this, v);
return v;
}
public void setDescription(String s1, String s2) {
text1.setText(s1);
text2.setText(s2);
}
@Override
public void onAttach(Context context) {super.onAttach(context);}
@Override
public void onDetach() {
super.onDetach();
}
}
Моей проблема: когда вызов метод SearchResultFragment.setDescription("Text 1","Text 2");
из SearchActivity, я получаю сообщение об ошибке:
нулевого объект ссылочного
каждого TextView. Эта ошибка, если использовать нож для масла, но если нет, то это работа, если я объявляю Посмотреть, как это:
text1 = rootView.findViewById(R.id.text1);
text2 = rootView.findViewById(R.id.text2);
в onCreateView.
так как его решить? Извините за мой английский. Благодарю.
Вы пробовали добавив '@ Nullable' аннотацию раз перед' @ Bind'? –
У меня такая же проблема (каждый введенный вид определенного фрагмента становится нулевым после изменения страницы). ** Вы нашли какое-либо решение? ** – iroyo