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;  
}  
原文地址:https://www.cnblogs.com/lbangel/p/3585929.html