listview SimpleAdapter 刷新问题

goshiter 2012-12-14 04:08:43

public class NasActivity extends Activity {
public static final String TAG = "nasActivity";
private Context mContext;
ListView list;
SimpleAdapter adapter;
private int Pre_Num = 0;
private String[] info;
private String pre_name="~$";
private String[] name={""};
public BroadcastReceiver XXXX = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
....
updateview();
}
};
private void updateview() {
getInfo();
adapter =new SimpleAdapter(this, getData(), R.layout.listitems,
new String[] {"name","info"},
new int[] {R.id.name,R.id.info});
list.setAdapter(adapter);
}
private void getInfo()
{ ......
change the info[];
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.nasview);
list = (ListView) findViewById(R.id.ListView01);
Pre_Num=name.length;
info =new String[Pre_Num];
this.registerReceiver(XXXX, new IntentFilter(
"intent.action.XXXX"));
getInfo();
adapter =new SimpleAdapter(this, getData(), R.layout.listitems,
new String[] {"name","info"},
new int[] {R.id.name,R.id.info});
list.setAdapter(adapter);
}
private List<Map<String,Object>> getData(){
List<Map<String, Object>> list =new ArrayList<Map<String,Object>>();
Map<String, Object> map =new HashMap<String, Object>();
for(int i=0;i<Pre_Num;i++)
{
map =new HashMap<String, Object>();
map.put("name", name[i]+pre_name);
map.put("info", info[i]);
list.add(map);
}
return list;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
this.unregisterReceiver(XXXX);
super.onDestroy();
}
}
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
passself 2012-12-14
  • 打赏
  • 举报
回复
有数据变化的时候notifyDataSetChanged()就可以了.都是可以刷新的
dong3560 2012-12-14
  • 打赏
  • 举报
回复
引用 2 楼 jiayugang 的回复:
请问这样可以刷新吗?还是在updateview(),用notifyDataSetChanged() 有人说SimpleAdapter 是静态的,若要刷新用notifyDataSetChanged,必须要自己继承baseadapter自己写
SimpleAdapter 是静态的? 这句话没看懂,SimpleAdapter就是继承的BaseAdapter 用notifyDataSetChanged()肯定可以的,要保证其第一次绑定的数据源按你需要的改变 你getData()方法每个返回一个新的引用是不行的
goshiter 2012-12-14
  • 打赏
  • 举报
回复
引用 楼主 jiayugang 的回复:
public class NasActivity extends Activity { public static final String TAG = "nasActivity"; private Context mContext; ListView list; SimpleAdapter adapter; private int Pre_Num……
还有其他方法刷新吗?在updateview(),用notifyDataSetChanged()
goshiter 2012-12-14
  • 打赏
  • 举报
回复
请问这样可以刷新吗?还是在updateview(),用notifyDataSetChanged() 有人说SimpleAdapter 是静态的,若要刷新用notifyDataSetChanged,必须要自己继承baseadapter自己写
b87936260 2012-12-14
  • 打赏
  • 举报
回复
你想问什么,还是科普篇?

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧