获取网络数据填充Listview

 
之前做项目时需要从网络获取数据填充listview显示,因为没有网络框架的使用,直接在子线程中获取了数据便进行填充,发现数据不显示.使用handler消息机制更改后,界面显示,基本的handler使用方法,开一个子线程获取一下数据,然后传递到主线程更新ui,主要代码如下:
 1     public class MainActivity extends Activity {
2 3 private ListView listView; 4 private List<String> member; 5 private ListAdapter adapter; 6 private Handler handler=null; 7 9 @SuppressLint("HandlerLeak")10 protected void onCreate(Bundle savedInstanceState) {11 super.onCreate(savedInstanceState);12 setContentView(R.layout.main);13 14 listView=(ListView) super.findViewById(R.id.listview);15 //cache=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cache");16 17 //开一条子线程加载网络数据18 Runnable runnable=new Runnable()19 {20 public void run() 21 {22 try 23 {24 //获取网络数据的地方
		
27                     //发送消息,并把persons结合对象传递过去
28                     handler.sendMessage(handler.obtainMessage(0, persons));
29                 } 
30                 catch (InterruptedException e) 
31                 {
32                     e.printStackTrace();
33                 }
34             }
35         };
36 
37         try 
38         {
39             //开启线程
40             new Thread(runnable).start();
41             //handler与线程之间的通信及数据处理
42             handler=new Handler()
43             {
44                 public void handleMessage(Message msg) 
45                 {
46                     if(msg.what==0)
47                     {
48                         //msg.obj是获取handler发送信息传来的数据
49                         @SuppressWarnings("unchecked")
			   //接受网络数据的地方
50                         ArrayList<String> member=(ArrayList<String>) msg.obj;
51                         //给ListView绑定数据
52                         BinderListData(member);
53                     }
54                 }
55             };
56         } 
57         catch (Exception e) 
58         {
59             e.printStackTrace();
60         }
61     }
62     
63     //绑定数据
64     public void BinderListData(ArrayList<Person> person)
65     {
66         //创建adapter对象
67         adapter=new ListViewAdapter(R.layout.item,this,member);
68         //将Adapter绑定到listview中
69         listView.setAdapter(adapter);
70     }
71     
72 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值