1.使用adapter.notifyDataSetChanged()之前,要把Adapter中绑定的List.remove掉;
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo itemInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
Object itemValue = myAdapter.getItemId(itemInfo.position);
int i = Integer.parseInt(itemValue.toString());
String itemTitle = newsBeanList.get(i).title;
String itemTime = newsBeanList.get(i).time;
String itemImageUrl = newsBeanList.get(i).imageURL;
String itemContentUrl = newsBeanList.get(i).contentURL;
switch (item.getItemId()){
// 删除item,同时删除数据库
case 0:
db.delete("News","news_title = ?",new String[]{itemTitle});
newsBeanList.remove(i);
myAdapter.notifyDataSetChanged();
break;
// 加“收藏”中的内容加入“离线”
case 1:
ContentValues values3 = new ContentValues();
values3.put("news_title", itemTitle);
values3.put("news_time",itemTime);
values3.put("news_imageUrl",itemImageUrl);
values3.put("news_contentUrl",itemContentUrl);
db.insert("NewsCache",null,values3);
break;
default:
break;
}
return super.onContextItemSelected(item);
}
2.layout_below与layout_alignBottom的区别
android:layout_below="@+id/first" //在某元素的的下方;
android:layout_alignBottom="@+id/first"//本元素的下边缘和某元素的的下边缘对齐;
3.==与.equals区别
4.Integer i = new Integer(xxx)和Integer i =xxx;这两种方式的区别。
当然,这个题目属于比较宽泛类型的。但是要点一定要答上,我总结一下主要有以下这两点区别:
1)第一种方式不会触发自动装箱的过程;而第二种方式会触发;
2)在执行效率和资源占用上的区别。第二种方式的执行效率和资源占用在一般性情况下要优于第一种情况(注意这并不是绝对的)。
5.当 “==” 运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。另外,对于包装器类型,equals方法并不会进行类型转换。