I want to change data when I swipe a ViewPager
in Fragment
.
Data of Tabview
comes from JSON
. It gives id
and according to that id, data will be retrieved. But when mainActivity
is loaded it gives first two position simultaneously.
ActivityMain.java
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
String serverUrl = DataService.category;
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(serverUrl);
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
String responseText = EntityUtils.toString(entity);
System.out.println("the response text is " + responseText);
response_text = new JSONObject(responseText);
JSONArray jarray=response_text.getJSONArray("posts");
for(int k=0;k<jarray.length();k++)
{
JSONObject jk=jarray.getJSONObject(k);
adapter.addFragment(new TopNewsFragment(),jk.getString("categoryName"),jk.getString("c_id"));
arraylist.add(jk.getString("c_id"));
}
fetchDate();
viewPager.setAdapter(adapter);
}
Here is my ViewPager Adapter
class.
public class ViewPagerAdapter extends FragmentPagerAdapter
{
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title,String category)
{
mFragmentList.add(fragment);
Bundle b=new Bundle();
b.putString("category_id",category);
b.putString("title",title);
fragment.setArguments(b);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
Also it does not show first and last position. Thanks in advance.
Use FragmentStatePagerAdapter
Check this link you may got answer : click here
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.