android学习笔记(十二)

(二)

短信数据库   

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

ArrayAdapter:

    这是一个Listview和数组之间的适配器。

    其本上来说。大部分方法都和操作数组差不多。在使用的过程中记住一点。notifyDataSetChanged() 。需要注意的是这个方法。如果你没有调用这个Adapter方法的话。数组的变化需要在这里提出。

    关于这点,我在上个app中,没有细读这个app。结果就是搞了一个很麻烦的实现。

    getView 这个方法估计会比较常用。简单的来说就是定制自己的视图。其他还有一点类似的方法。比如说setDropDownViewResource 。不过还没有细细研究。

      

getLastVisiblePosition()

   这个方法感觉像是最后一个生成的postion

   比方说这样一个view

   1

   2

   3

   那么他的位置就会在3

 

麻烦的地方:

   不知道该如何处理以下的逻辑。就以上面的当一个功能,需要在ContextMenulist长按)和opiton menu(最底下的那个Menu)相同时,不知道如何取得ListViewIndex

   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的时候,无法使用ListViewgetLastVisiblePosition方法。因为此方法返回的值为-1

后来想到用这个OnCreateContextMenuListener接口。但是发现这个接口是给List用的。而不是Menu,这样也是很麻烦的。说。

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

你可能感兴趣的:(android)