j'ai récupéré des textes + images de DB et l'a affiché dans une cellule quadrillée de gridview.ieeach se compose d'une image + un text.Maintenant je dois faire la pagination pour that.Ive de lui permettre de Afficher 4 cellules par page.Comment pourrais-je faire cela? Exemple de lien ou de code est très apprécié.pagination Gridview en android
Répondre
Je pense que cela pourrait vous aider. Il couvre les bases de l'affichage de plusieurs éléments sur un GridView avec des exemples de code.
J'espère que cette aide ..
J'ai trouvé un exemple sur le lien de la page Formation Android « http://developer.android.com/training/implementing-navigation/index.html » là, vous pouvez télécharger un exemple EffectiveNavigation.zip, est très utile pour les téléavertisseurs. De là, vous obtiendrez les bases des adaptateurs et des choses dont vous avez besoin pour cela.
la façon dont j'ai atteint une grille avec pagination est:
ayant 2 mises en page 1 avec le récepteur d'appel
<android.support.v4.view.ViewPager ...
et une pour l'affichage de la grille
<GridView android:id="@+id/gridview" ...
Note: la disposition de la grille si est enveloppé dans l'autre composant j'avais des problèmes.
Je charge le pager dans une activité, ici vous chargez le paginateur comme l'exemple d'entraînement android Je ne pas ajouter l'information ici seance est bien expliqué là-bas. ici aussi j'ai ma logique de charger le tableau d'éléments dans ce cas, vous les chargez de la réponse JSON je fais une AsyncTask une fois terminée le:
protected void onPostExecute(String params) {
refresList();
progressDialog.dismiss();
}
j'appelle la méthode refreshItems que cela notyfy l'adaptateur pager que quelque chose a changé "mGridPagerAdapter.notifyDataSetChanged();" De même, j'appelle une méthode de rafraîchissement des onglets pour recâbler les onglets à afficher.
public void refrestTabs() {
actionBar.removeAllTabs();
for (int i = 0; i < mGridPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab()
.setText(mGridPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}
J'ai créé un GridAdapter qui s'étend FragmentPagerAdapter ici sur la méthode getItem charger le fragment
@Override
public Fragment getItem(int i) {
Fragment fragment = new GridListFragment();
Bundle args = new Bundle();
args.putInt(GridListFragment.ARG_SECTION_NUMBER, i);
fragment.setArguments(args);
return fragment;
}
la GridListFragment de classe étend fragment et va ici votre logique pour charger la section du tableau vous vouloir. ici est la méthode onCreateView que j'utilise
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
position = args.getInt(ARG_SECTION_NUMBER);
View view = inflater.inflate(R.layout.comp_grid_view, container, false);
gridView = (GridView) view.findViewById(R.id.gridview);
applicationItems = new ArrayList<ApplicationItem>();
int resID = R.layout.comp_app_list_item;
aa = new ApplicationListItemAdapter(view.getContext(), resID, applicationItems);
gridView.setAdapter(aa);
gridView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
mCallback.onApplicationSelected(applicationItems.get(position));
}}
);
return view;
}
I rafraîchir la grille lorsque la méthode onStart est appelée et je le fais de cette façon:
@Override
public void onStart() {
applicationItems.clear();
AppShortcutApplication appState = ((AppShortcutApplication)getActivity().getApplicationContext());
List<ApplicationItem> l = appState.getCurrentListApplications();
if (l != null){
applicationItems.clear();
applicationItems.addAll(l);
aa.notifyDataSetChanged();
}
super.onStart();
}
Je passe les articles thru l'état d'application que vous pouvez trouver informations à ce sujet sur cette autre question lien "How do I pass data between Activities in Android application?"
Encore une fois ce n'est peut-être pas la meilleure approche, mais vous ne trouverez rien d'autre.
Voici ce que fait iam dans l'une de mes applications. J'espère que cela aide.
public static int currentPage = 0;
private boolean endOfAlbums = false;
private int lastItem = 0;
albumGrid.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
// Pause fetcher to ensure smoother scrolling when flinging // You can ignore this part
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) {
mImageFetcher.setPauseWork(true);
} else {
mImageFetcher.setPauseWork(false);
}
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
final int _lastItem = firstVisibleItem + visibleItemCount;
if (_lastItem > 0 && totalItemCount > 0)
if (_lastItem == albums.size() && !endOfAlbums && lastItem != _lastItem) {
lastItem = _lastItem;
// Last item is fully visible.
loadAlbums();
}
}
});
return view;
}
private void loadAlbums() {
if (currentPage == 0) {
albums.clear();
endOfAlbums = false;
lastItem = 0;
// get new releases
progressLayout.setVisibility(View.VISIBLE);
} else
progressLoadMore.setVisibility(View.VISIBLE);
if (Utility.isNetworkAvailable(getActivity())) {
new Thread(new Runnable() {
@Override
public void run() {
// get the serverAlbums
ArrayList<Album> serverAlbums = ServerAPI.getAllAlbums(session.getLanguage(), currentPage);
if (serverAlbums.size() > 0)
albums.addAll(serverAlbums);
else
endOfAlbums = true;
currentPage++;
myHandler.post(updateRunnable);
}
}).start();
updateRunnable = new Runnable() {
@Override
public void run() {
if (albums.size() > 0) {
imageAdapter.notifyDataSetChanged();
// get listview current position - used to maintain scroll position
int currentPosition = albumGrid.getFirstVisiblePosition();
// Setting new scroll position
albumGrid.smoothScrollToPosition(currentPosition + 1, 0);
} else
tvNoAlbums.setVisibility(View.VISIBLE);
progressLayout.setVisibility(View.GONE);
progressLoadMore.setVisibility(View.GONE);
}
};
} else {
Toast.makeText(getActivity(), R.string.check_connectivity, Toast.LENGTH_SHORT).show();
progressLayout.setVisibility(View.GONE);
progressLoadMore.setVisibility(View.GONE);
}
}
- 1. GridView pagination en C#
- 2. pagination Gridview
- 3. Problème de pagination gridview
- 4. pagination gridview dans popup
- 5. Pagination sur GridView
- 6. pagination pour GridView css
- 7. pagination personnalisée dans gridview
- 8. Custom GridView Pagination
- 9. Gridview erreur de pagination
- 10. Css Pour pagination Gridview
- 11. GridView Pagination Links style
- 12. Changement de pagination GridView. Capture en postback
- 13. Problèmes de pagination de GridView
- 14. Gridview n'autorisant pas la pagination
- 15. Problème de pagination ASP.NET Gridview
- 16. Pagination Gridview avec procédure stockée
- 17. pagination Gridview ne fonctionne pas
- 18. PagedDatasource pour la pagination gridview
- 19. Pagination dans gridview..in webform
- 20. System.Web.HttpException sur asp: pagination gridview
- 21. Autoriser la pagination pour gridview
- 22. Gridview tri et pagination. Comment garder la pagination?
- 23. Puis-je exporter gridview pour exceler, si gridview a pagination
- 24. Définition de la pagination dynamique sur gridview
- 25. ASP.NET GridView Pagination avec MySQL LIMIT
- 26. Amélioration des performances de pagination pour gridview?
- 27. Pagination personnalisée à l'aide de GridView
- 28. Contrôle utilisateur GridView avec pagination dans MVC
- 29. avoir un problème avec la pagination gridview
- 30. La pagination ne fonctionne pas sur Gridview
ce lien m'aide à afficher les images dans gridview.Mais j'ai besoin de faire de la pagination – sanjay