android学习笔记(十二)
(二)
短信数据库???
??? 关于短信数据库的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,这样也是很麻烦的。说。
?最后还是放弃统一的想法。不知道有没有高人能够解答。