Listview刷新问题

小傅哥
Java领域优质创作者
博客专家认证
2013-07-02 11:22:37
static class MyHandler extends Handler {

WeakReference<MainActivity> wr;

public MyHandler(MainActivity mainActivity) {
wr = new WeakReference<MainActivity>(mainActivity);
}

@Override
public void handleMessage(Message msg) {
MainActivity mainActivity = wr.get();
switch (msg.what) {
case 0: {
Toast.makeText(mainActivity, (String) msg.obj,
Toast.LENGTH_LONG).show();
}
break;
case 1: {
String string = (String) msg.obj;
String[] strings = string.split("#");
try {
int a = Integer.parseInt(strings[0]);

if (a == (strings.length - 1)) {
for (int i = 1; i <= a; i++) {
String[] data = strings[i].split("\\|");
if (data.length == 2) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", data[0]);
map.put("name", data[1]);
mainActivity.lists.add(map);
}
}
}
SimpleAdapter simpleAdapter = new SimpleAdapter(
mainActivity, mainActivity.lists,
android.R.layout.simple_list_item_1,
new String[] { "name" },
new int[] { android.R.id.text1 });

mainActivity.listIDS.setAdapter(simpleAdapter);
simpleAdapter.notifyDataSetChanged();

mainActivity.listIDS
.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
Message message = new Message();
message.what = 2;
message.obj = arg2;
handleMessage(message);
}
});
} catch (Exception e) {

}

}
break;
case 2: {
int a = (Integer) msg.obj;
mainActivity.GetState(a);
mainActivity.GetState();
/*mainActivity.timerTaskS;*/
}
break;
case 3: {
mainActivity.SetState((String) msg.obj);
mainActivity.handler.sendEmptyMessage(5);
}
break;

case 4: {
mainActivity.progressBar.setVisibility(ProgressBar.VISIBLE);
}
break;
case 5: {
mainActivity.progressBar.setVisibility(ProgressBar.INVISIBLE);
}
break;
default:
break;
}
}
}
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Utopia 2013-07-02
  • 打赏
  • 举报
回复
setAdapter就可以了。 若数据源变了notifyDataSetChanged就可以了
小傅哥 2013-07-02
  • 打赏
  • 举报
回复
mainActivity.listIDS.setAdapter(simpleAdapter); simpleAdapter.notifyDataSetChanged(); 这句从没数据到有数据可以更新吗?
  • 打赏
  • 举报
回复
引用 1 楼 Yao__Shun__Yu 的回复:
mainActivity.listIDS.setAdapter(simpleAdapter); simpleAdapter.notifyDataSetChanged(); 这句从没数据到有数据可以更新吗?
可以更新的,只要数据源变了
小傅哥 2013-07-02
  • 打赏
  • 举报
回复
我那边是一开始没有数据,服务器发了之后才有数据,不等及时显示,还需要重新登录~

80,351

社区成员

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

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