读书人

android学习札记(十二)

发布时间: 2012-09-05 15:19:35 作者: rapoo

android学习笔记(十二)

(二)

短信数据库???

??? 关于短信数据库的ID。我个人觉得是自动递增的,但是删除之后就是重新计数。但是不同点在于,如果你有10条短信或者Conversation。那么id是10.如果你删除其中一条。那么第十条的记录还是11。但是如果你短信全部删除。那么id将会是重新从0开始。

ArrayAdapter:

??? 这是一个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,这样也是很麻烦的。说。

?最后还是放弃统一的想法。不知道有没有高人能够解答。

读书人网 >Android

热点推荐