如何检查是否因为notifyDataSetChanged()而调用了getView()

时间:2015-07-13 12:52:29

标签: android android-layout android-listview

我的getView中有一个条件,只有在调用getView时才会调用,因为调用了notifyDataSetChanged()。问题是getView可以被调用,因为各种原因,例如listview布局由于键盘隐藏/显示,滚动列表等而改变,但在任何这些情况下,都不会调用notifyDataSetChanged()方法。

有什么方法可以追踪这个?

由于

代码

.box1

1 个答案:

答案 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;
       }
    }