学习小结
2015-08-18 19:41
344 查看
1 ViewPager在回退时原有内容清空:
动态刷新ListView数据时,例如每秒刷新:
先要清空数据源里面的内容,如dataList.clear(),第一次加载数据,使用适配器
adapter = new MyAdapter(this, dataList);
listView.setAdapter(a
4000
dapter);
如果不是第一次加载,就使用notifySetDataChanged();笔者给出在做项目时使用的示例代码
adapter = new MyAdapter(getActivity(), dataList);
lvContent.post(new Runnable() {
@Override
public void run() {
BaseAdapter a = (BaseAdapter) lvContent.getAdapter();
if(a == null) lvContent.setAdapter(adapter);
else{
((MyAdapter)(a)).dataList = dataList;
a.notifyDataSetChanged();
}
}
});
ps:如果事先不清空,每次刷新后都会回到顶部
3.子线程更新UI的问题
除了可以使用handler,runonuiThread等方法外,使用
view.post(new Runnable(){
public void run(){
}
});
就显得简单一些;
4.Fragment的ViewPager的预加载问题:
重写setUserVisibleHint
5.double类型的加减乘除精度问题
在java中使用BigDecimal代替浮点数的计算,可以确定精度
6.alertDialog.Builder.setView(v)在二次点击后程序会闪退
在相应的监听里面重新获取一遍所使用的自定义v。
7.android访问网络时不能在主线程中
在相应的监听里面重新获取一遍所使用的自定义v。
<span style="white-space:pre"> </span>setContentView(R.layout.activity_main);
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads()
.detectDiskWrites().detectNetwork().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
holder.heyue.setText(dataList.get(position).get("heyue").toString()); return convertView; } @Override public long getItemId(int position) { return 0; } @Override public Object getItem(int position) { return dataList.get(position); } @Override public int getCount() { //Log.v("!!!", String.valueOf(getData().size())); return dataList.size(); } class ViewHolder { public TextView heyue; }
动态刷新ListView数据时,例如每秒刷新:
先要清空数据源里面的内容,如dataList.clear(),第一次加载数据,使用适配器
adapter = new MyAdapter(this, dataList);
listView.setAdapter(a
4000
dapter);
如果不是第一次加载,就使用notifySetDataChanged();笔者给出在做项目时使用的示例代码
adapter = new MyAdapter(getActivity(), dataList);
lvContent.post(new Runnable() {
@Override
public void run() {
BaseAdapter a = (BaseAdapter) lvContent.getAdapter();
if(a == null) lvContent.setAdapter(adapter);
else{
((MyAdapter)(a)).dataList = dataList;
a.notifyDataSetChanged();
}
}
});
ps:如果事先不清空,每次刷新后都会回到顶部
3.子线程更新UI的问题
除了可以使用handler,runonuiThread等方法外,使用
view.post(new Runnable(){
public void run(){
}
});
就显得简单一些;
4.Fragment的ViewPager的预加载问题:
重写setUserVisibleHint
<span style="white-space:pre"> </span>public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { Log.v("!!!", "resume"); } }
5.double类型的加减乘除精度问题
在java中使用BigDecimal代替浮点数的计算,可以确定精度
6.alertDialog.Builder.setView(v)在二次点击后程序会闪退
在相应的监听里面重新获取一遍所使用的自定义v。
7.android访问网络时不能在主线程中
在相应的监听里面重新获取一遍所使用的自定义v。
<span style="white-space:pre"> </span>setContentView(R.layout.activity_main);
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads()
.detectDiskWrites().detectNetwork().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法