android安全问题的BaseAdapter的两个方法,为什么一个返回int值,一个返回long值

以前一直在用BaseAdapter对于其中的getview方法嘚重写一直不太清楚。今天终于得以有空来探究它的详细机制

下面先讲讲我遇到的几个问题:



虽然两种设置不同,结果也不同但是convertview的機制没有变。

就是在初始显示的时候每次显示一个item都调用一次getview方法但是每次调用的时候covertview为空(因为还没有旧的view),当显示完了之后如果屏幕移动了之后,并且导致有些Item(也可以说是view)跑到屏幕外面此时如果还有新的item需要产生,则这些item显示时调用的getview方法中的convertview参数就不是null而是那些移出屏幕的view(旧view),我们所要做的就是将需要显示的item填充到这些回收的view(旧view)中去最后注意convertview为null的不仅仅是初始显示的那些item,還有一些是已经开始移入屏幕但是还没有view被回收的那些item

最终我们用亲手写的代码实现了Recycler(反复循环器).

第二个问题 其实应该在第一个问题中嵌套来讲,但是为了思路清晰我分开了:

view的setTag和getTag方法其实很简单在实际编写代码的时候一个view不仅仅是为了显示一些字符串、图片,有时我們还需要他们携带一些其他的数据以便我们对该view的识别或者其他操作于是android安全问题 的设计者们就创造了setTag(Object)方法来存放一些数据和view绑定,我們可以理解为这个是view 的标签也可以理解为view 作为一个容器存放了一些数据而这些数据我们也可以通过getTag() 方法来取出来。

到这里setTag和getTag大家应该已經明白了再回到上面的话题,

是回收来的那么我们就不必创建新的holder对象只需要把原来的绑定的holder取出加上新的数据就行了。

至此我的问題讲完了你的问题解决了么?

我要回帖

更多关于 android安全问题 的文章

 

随机推荐