android 总结
1)重写BaseAdapter的getView方法时,为了性能要使用ViewHolder和convertView
View v = null; ViewHolder viewHolder; if( convertView == null ) {//没有缓存时候 v = View.inflate(MainActivity.this, R.layout.item, null); viewHolder = new ViewHolder(); viewHolder.title = (TextView)v.findViewById(R.id.title);
v.setTag(viewHolder); //把viewholder作为tag放入v中 } else { v = convertView;//直接把带viewholder的tag的缓存赋值给v viewHolder = (ViewHolder) v.getTag();//从里面取出tag } viewHolder.title.setText(newsList.get(position).getTitle()); return v; //返回v之后,滑出屏幕作为缓存,里面有viewholder tag
2)使用sharedPreference 最后一定要执行.commit().否则不会生效.
SharedPreferences sp = getSharedPreferences("abc", MODE_PRIVATE); sp.edit().putString("ipNumber", string).commit();
3)使用XmlPullParser解析XML文件
1 XmlPullParser xp = Xml.newPullParser(); 2 try { 3 xp.setInput(is,"utf-8");//这个容易忘 4 int type = xp.getEventType(); 5 while(type != XmlPullParser.END_DOCUMENT) { 6 //解析的代码
.... 7 type = xp.next();//这个容易忘 8 } 9 } catch (Exception e) { 10 // TODO Auto-generated catch block 11 e.printStackTrace(); 12 }
4)自定义旋转,移动的动画之后,要注意按钮消失的地方还是可以点击的,所以要把按钮设置为setEnable(false);
然后在让按钮现实的代码里加上setEnable(true);
5)点击按钮,执行动画, 当快速点击时,会多次执行动画, 所以要保证:等动画执行完才能执行新动画.
可以定义一个static变量,用于记录当前执行的动画数量,
当数量不为0时,时间监听函数直接return