네트워크 에서 비동기 로 데 이 터 를 불 러 와 ListView 에 표시 합 니 다.

4068 단어 안 드 로 이 드
원본 링크:http://www.xiaoyuanbiji.top/319.html클릭 하여 링크 열기
AsyncTask 비동기 류 를 사용 하여 네트워크 에서 데 이 터 를 불 러 오고 listview 에 표시 합 니 다.
바로 코드 를 달 았 습 니 다. MainActivity. java.
public class MainActivity extends Activity {
 
    private MyTask mTask;
    ListView listView;
    SimpleAdapter adapter;
    List> data;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) this.findViewById(R.id.listView1);
 
        data = new ArrayList>();
 
        //  SimpleAdapter          item     
        // this      android      ,           
        adapter = new SimpleAdapter(this,
                //data        ,List> data;
                data, 
                //        (          )
                R.layout.item, 
                 
                //   data     HashMap   ,                  ?             
                //         HashMap   ,          int[]            
                //    Cons.NAME        R.id.name     
                new String[] { Cons.NAME, Cons.PRICE,Cons.AVERPRICE, Cons.CHANGE }, 
                //   ID  
                new int[] { R.id.name,R.id.price, R.id.averprice, R.id.change});
        listView.setAdapter(adapter);
         
        //   ,   AsyncTask     UI thread   ;
        mTask = new MyTask();
        //      ,        doInBackground()    
        //execute     UI thread   
        mTask.execute("   doInBackground()   ");
 
    }
     
    /**
     *     
     *  AsyncTask android          ,    
     *  < >         :doInBackground()       
     *  < >         :onProgressUpdate()       ,             
     *  < >         :onPostExecute()       
     */
    private class MyTask extends AsyncTask>> {
 
        /**
         * doInBackground          ,         UI
         *         ,       onPostExecute()     
         */
        @Override
        protected List> doInBackground(String... params) {
            //publishProgress(i)     
            //         ,         
            return GetInfo.getJSONObject(Helper.getJson(params[0]));
        }
 
        /**
         * onPostExecute               UI,    
         */
        @Override
        protected void onPostExecute(List> result) {
            for (HashMap li : result) {
                data.add(li);
            }
            //         list   ,    Item   
            adapter.notifyDataSetChanged();
            super.onPostExecute(result);
        }
        /**
         *         
         *     publishProgress(i)    onProgressUpdate  , i  values 
         */
        @Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
        }
    }
 
}

item.xml


    
    
    
    

좋은 웹페이지 즐겨찾기