(二)
短信数据库
关于短信数据库的ID。我个人觉得是自动递增的,但是删除之后就是重新计数。但是不同点在于,如果你有10条短信或者Conversation。那么id是10.如果你删除其中一条。那么第十条的记录还是11。但是如果你短信全部删除。那么id将会是重新从0开始。
这是一个Listview和数组之间的适配器。
其本上来说。大部分方法都和操作数组差不多。在使用的过程中记住一点。notifyDataSetChanged() 。需要注意的是这个方法。如果你没有调用这个Adapter方法的话。数组的变化需要在这里提出。
关于这点,我在上个app中,没有细读这个app。结果就是搞了一个很麻烦的实现。
getView 这个方法估计会比较常用。简单的来说就是定制自己的视图。其他还有一点类似的方法。比如说setDropDownViewResource 。不过还没有细细研究。
getLastVisiblePosition()
这个方法感觉像是最后一个生成的postion
比方说这样一个view
1
2
3
那么他的位置就会在3
麻烦的地方:
不知道该如何处理以下的逻辑。就以上面的当一个功能,需要在ContextMenu(list长按)和opiton menu(最底下的那个Menu)相同时,不知道如何取得ListView的Index。
static int getIndex(MenuItem item,ListView listView){
int result = -1;
switch(item.getGroupId()){
case(main.MENUGROUP_CONTEXT): //context
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
result= menuInfo.position;
break;
case(main.MENUGROUP_OPTION): //option
result = listView.getSelectedItemPosition();
break;
}
return result;
}
现在知道的是这样一段代码。但是怎么说呢。这个代码很繁琐。貌似在用ContextMenu的时候,无法使用ListView的getLastVisiblePosition方法。因为此方法返回的值为-1。
后来想到用这个OnCreateContextMenuListener接口。但是发现这个接口是给List用的。而不是Menu,这样也是很麻烦的。说。
最后还是放弃统一的想法。不知道有没有高人能够解答。