![](/img/trans.png)
[英]How to Refresh listview using getview of BaseAdapter on image clickEvent
[英]How can I refresh my ListView using BaseAdapter
我嘗試使用notifyDataSetChanged()刷新列表視圖,但這被標記為紅色。 我使用ListView像擴展適配器一樣,所以notifyDataSetChaned它應該可以工作,但是可以。
下面是我的聲明ListView和ArrayList。
ListView listview;
ArrayList<ListData> myList = new ArrayList<>();
我以這種方式設置清單:
listview = (ListView) findViewById(R.id.listView);
listview.setAdapter(new MyBaseAdapter(this, myList));
我也使用setOnScrollListener,並且希望SROLL_STATE = 0時刷新列表視圖。
listview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
int position = listview.getFirstVisiblePosition();
SCROLL_STATE = position;
if (SCROLL_STATE == 0) {
listview.notifyDataSetChanged(); // Here is a problem, because it's not work
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
notifyDataSetChanged()
是BaseAdapter類的方法,而不是 ListView類的方法。 因此,在邏輯上和語法上調用listView.notifyDatasSetChanged();
是不正確的listView.notifyDatasSetChanged();
。
將此行替換為
listView.getAdapter().notifyDataSetChanged();
祝一切順利 :)
定義一個適配器對象,MyBaseAdapter adapter = new MyBaseAdapter(this,myList); adapter.notifyDataSetChanged();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.