Android学习笔记_62_手机安全卫士知识点归纳(2)ListView重要属性 PopupWindow应用

  1、缓存颜色:

为什么ListView在拖动的时间是黑色,而静止时间是自己的颜色是因为  ListView的缓存。只需一个配置即可。在这个ListView里面加上它即可。  

android:cacheColorHint="@android:color/transparent"  

  2、ListView异步刷新:

最厉害的,我们在ListView里添加过以后,想要异步刷新,  即页面不改变,但是数据改变了。其实就是安卓 中的ajax。  

dao.insert(numString);  

// 此时你肯定想要通知ListView刷新数据。  

// 让数据适配器通知listview更新数据 ,相当于异步 刷新 。  

numbers = dao.findAll();    //你也要先得到最新的数据。  

adapter.notifyDataSetChanged();  

  3、菜单 :

onCreateOptionsMenu:这个比较简单,就是Activity下的方法重写,只调用一次

onPrepareOptionsMenu:按menu键一直会调用

onCreateContextMenu:这个是ListView下长按某item的时候会弹出的菜单

// 给listview注册上下文菜单  在onCreate里面

private ListView lv_call_sms_safe;

registerForContextMenu(lv_call_sms_safe);  

二、配置文件
<?xml version="1.0" encoding="utf-8"?>  

<menu xmlns:android="http://schemas.android.com/apk/res/android" >  

    <item android:id="@+id/update_number" android:title="更改黑名单号码"/>  

    <item android:id="@+id/deltel_number" android:title="删除黑名单号码"/>             

</menu>  
三、覆盖方法  

/** 

 * 创建上下文菜单  

 */  

@Override  

public void onCreateContextMenu(ContextMenu menu, View v,  

        ContextMenuInfo menuInfo) {  

    super.onCreateContextMenu(menu, v, menuInfo);  

    //其实这个是获得menu的那个充气的东西,与View略有不同  

    MenuInflater inflater = getMenuInflater();  

    //把这个布局文件的View给吹起来  

    inflater.inflate(R.menu.context_menu, menu);  

}  

/** 

 * 为下下文菜单写监听事件 

 */  

@Override  

public boolean onContextItemSelected(MenuItem item) {  

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();  

    switch (item.getItemId()) {  

    case R.id.update_number:  

          

        break;  

  

    case R.id.deltel_number:  

        //当前条目的ID。  

        int id = (int) info.id;  

        String num = numbers.get(id);  

        dao.delete(num);  

        //重新获取新的代码   

        numbers = dao.findAll();  

        //通知最新的  

        adapter.notifyDataSetChanged();  

        break;  

    }  

      

    return false;  

}  

 

你可能感兴趣的:(PopupWindow)