我從數據庫檢索文本+圖像,並將其顯示在gridview.ieeach gridview單元格包含一個圖像+一個文本。現在我要做的分頁,我想讓它每頁顯示4個單元格。我該怎麼做?例如鏈接或代碼非常感謝。在android中的Gridview分頁
回答
我認爲這可能對你有所幫助。它涵蓋了使用代碼示例在GridView上顯示多個項目的基礎知識。
我希望這有助於..
我發現了Android培訓頁面鏈接「http://developer.android.com/training/implementing-navigation/index.html」那裏,你可以下載一個例子EffectiveNavigation.zip的一個例子,是尋呼機非常有用的。從那裏你將獲得適配器的基礎知識和你需要的東西。具有與尋呼機
<android.support.v4.view.ViewPager ...
,一個用於網格視圖
<GridView android:id="@+id/gridview" ...
注2個佈局1
:在網格佈局
我實現了電網與分頁的方式是如果被包裝在其他組件中,我遇到了問題。
我在一個Activity中加載尋呼機,在這裏你加載paginator作爲android訓練的例子我不在這裏添加信息seance在那裏很好的解釋。 這裏還有我有我的邏輯來加載在這種情況下,項目從JSON響應加載它們的陣列我做的AsyncTask一旦完成上:
protected void onPostExecute(String params) {
refresList();
progressDialog.dismiss();
}
我稱之爲refreshItems方法,這將notyfy尋呼機適配器的東西已經改變「mGridPagerAdapter.notifyDataSetChanged();」以及我調用刷新選項卡方法來重新顯示要顯示的選項卡。
public void refrestTabs() {
actionBar.removeAllTabs();
for (int i = 0; i < mGridPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab()
.setText(mGridPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}
我已經創建了一個在這裏延伸FragmentPagerAdapter上的getItem方法GridAdapter加載片段
@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;
}
類GridListFragment擴展片段,並在這裏不用你的邏輯來加載陣列的部分,你想。 這裏是我使用
@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;
}
我刷新網格時OnStart方法被調用,我做這種方式onCreateView方法:
@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();
}
我直通你可以找到應用程序狀態的項目關於另一個問題上的信息鏈接「How do I pass data between Activities in Android application?」
再次,這可能不是最好的方法,但找不到其他任何東西。
這是iam在我的一個應用程序中做的事情。希望能幫助到你。
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. Android分頁GridView/ListView?
- 2. Android的GridView和分頁
- 3. GridView的分頁
- 4. 分頁的gridview
- 5. 分頁的GridView
- 6. DataList中的GridView的分頁
- 7. C中的GridView分頁#
- 8. UpdatePanel中的GridView分頁
- 9. 在asp.net中使用linq的Gridview分頁
- 10. 在GridView中的分頁html asp.net
- 11. 在彈出窗口中的gridview分頁
- 12. 在C#中的gridview搜索和分頁#
- 13. gridview分頁
- 14. asp.net gridview分頁
- 15. asp.net gridview分頁
- 16. Gridview分頁
- 17. 在android中的動態gridview分隔符
- 18. 從數據集在gridview中分頁
- 19. 如何在ASP.net中分頁gridview
- 20. 在GridView中分頁時出錯
- 21. 在Yii中按月分頁Gridview
- 22. 在ASP.Net Gridview控件中實現分頁
- 23. 如何在gridview中進行分頁?
- 24. GridView分頁問題!
- 25. GridView分頁性能
- 26. Gridview分頁問題
- 27. Gridview分頁錯誤
- 28. Asp .Net Gridview分頁
- 29. GridView分頁問題
- 30. 過程分頁GridView
此鏈接可幫助我在gridview中顯示圖像。但我需要做分頁 – sanjay 2011-03-17 11:46:57