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;
}