使用OnClickListener的onPageSelected方法在fragmnet之间滑动时无法刷新我的listview
我正在尝试更新listview,在Fragmnet之间滑动时从数据库中获取片段中的数据。我使用了OnPageChangeListener的onPageSelected()方法使用OnClickListener的onPageSelected方法在fragmnet之间滑动时无法刷新我的listview,listview,nullpointerexception,android-viewpager,swipe,Listview,Nullpointerexception,Android Viewpager,Swipe,我正在尝试更新listview,在Fragmnet之间滑动时从数据库中获取片段中的数据。我使用了OnPageChangeListener的onPageSelected()方法 public class TabsViewPagerFragmentActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save
public class TabsViewPagerFragmentActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Setting the OnPageChangeListener For the Sliding Tabs
tabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(final int i, final float v, final int i2) {
}
@Override
public void onPageSelected(final int i) {
if(i==0)
{ TabFragment tab=new TabFragment();
tab.fragmentBecameVisible();
}
}
@Override
public void onPageScrollStateChanged(final int i) {
}
});
}}
而fragmentBecameVisible()是由以下名为
public class Tab2Fragment extends Fragment implements FragmentInterface {
@Nullable
@Override
public View onCreateView() {
View v= inflater.inflate(R.layout.chat_tab,container,false);
///The Code Above fetching data from database
///Loading listView in Class using AsyncTask
loadContact.execute();
return v;
}
@Override
public void fragmentBecameVisible() {
listView = (ListView) getActivity().findViewById(R.id.recentList);
((BaseAdapter)listView.getAdapter()).notifyDataSetChanged();
}
}
我在fragmentBecameVisible()中遇到了NullPointerException,我不知道如何解决这个问题,除了使用以下解决方案之外
@Override
public void setUserVisibleHint(boolean visible) {
super.setUserVisibleHint(visible);
if (visible && isResumed()) {
//this gets call before onCreatView
onResume();
}
}
@Override
public void onResume() {
super.onResume();
if (!getUserVisibleHint()) {
return;
}
listView = (ListView) getActivity().findViewById(R.id.recentList);
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
}
我花了几天时间研究这个问题。找人帮忙