您的位置:首页 > 移动开发 > Android开发

android 请教各位大神一个用线程自动刷新 listview 的问题,在线等。急!!

2017-01-02 00:58 691 查看
先上代码 :

mainactivity中的 handler
 List<Map<String, Object>> listItems = 

new ArrayList<Map<String, Object>>();

 	Map<String, Object> listItem = new HashMap<String, Object>();

 

 @SuppressLint("HandlerLeak")

Handler handler = new Handler() {

        public void handleMessage (Message msg) {//此方法在ui线程运行

            switch(msg.what) {

            case MSG_SUCCESS:

            

            	items = (item)msg.obj;

            	System.out.println("111"+items.getHigh());

            

            	listItem.put("high",items.getHigh());

            	listItem.put("low",items.getLow());

            	listItem.put("last",items.getLast());

            	listItem.put("buy",items.getBuy());

            	listItem.put("sell",items.getSell());

            	listItems.add(listItem);  

            

            

                  

               

                break;

 

            case MSG_FAILURE:

                

                break;

            }

        }

    };


oncreate中的刷新
handler.post(runnable);

    	SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems,

    			R.layout.item, 

    			new String[] { "high", "low", "last","buy","sell" },

    			new int[] { R.id.high, R.id.low, R.id.last,R.id.buy,R.id.sell });

    	ListView list = (ListView) findViewById(R.id.listView1);

    	simpleAdapter.notifyDataSetChanged();

    	list.setAdapter(simpleAdapter);


Runnable 方法
Runnable runnable = new Runnable() {

        

        @Override

        public void run() {//run()在新的线程中运行

        	final String urlPath = "http://market.huobi.com/staticmarket/ticker_btc_json.js";

        	String jsonString = getJsonContent.getJsonContent(urlPath);

        	//解析string类型的json数据并返回类型为item的一个对象中

        

        	item item = JsonTools.getItem(jsonString);

        

   //将item对象返回到handler当中

            handler.obtainMessage(MSG_SUCCESS,item).sendToTarget();

          /*把下面那句话注释掉之后listview就可以显示了 只是不能刷新

*/

            handler.postDelayed(runnable,3000);

        }

    };


现在我想自动刷新这个listview就是线程每运行一次simpleadapter就能刷新一次,  可是线程运行完之后才会调用那个simpleadapter,请问要怎么才能解决这个问题?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: