我的getView中有一个条件,只有在调用getView时才会调用,因为调用了notifyDataSetChanged()。问题是getView可以被调用,因为各种原因,例如listview布局由于键盘隐藏/显示,滚动列表等而改变,但在任何这些情况下,都不会调用notifyDataSetChanged()方法。
有什么方法可以追踪这个?
由于
代码
.box1
答案 0 :(得分:1)
您可以做的是保留一个全局变量并创建一个包装器方法,该方法将全局变量设置为true并调用notifydatasetchanged()。在你的getView()中检查全局变量的值为true并执行操作。
此外,当你在getView()== yourdatalist.size()中的位置时,你必须将该全局变量设置为false。
// in the adapter
boolean notifyDataSetChangedCalled;
public void notifyDataSetChangedWrapper(){
notifyDataSetChangedCalled = true;
notifyDataSetChanged();
}
getView(View converView , int position , ViewGroup parent){
.
.
.
if(position == listItems.size()){
notifyDataSetChangedCalled = false;
}
}